--- title: Create a build script hide_title: true ---
# Build scripts Noodl has a way where you can hook into the different build events that are triggered from the editor. :::danger This is an experimental feature, that might be changed in the future. ::: ### Where to use it? - [Generate a Sitemap and static pages](/javascript/extending/build-script/sitemap-and-seo) - [Change nodes at build time](/javascript/extending/build-script/change-nodes-at-build-time) ## Create a build script To add a build script it has to be placed inside a folder in the project. As long as the file ends with `.build.js` it will be picked up by Noodl. The execution order of the build scripts are based on alphabetical order. ``` my-noodl-project/ .noodl/ build-scripts/ [HERE] ``` ### Example Here is an example of what kind of events you can listen to: ```js module.exports = { async onPreBuild(context) { // Occurs before the build. }, async onPostBuild(context) { // Occurs after the build. }, async onPreDeploy(context) { // Occurs before the build is deployed. }, async onPostDeploy(context) { // Occurs after the build is deployed. }, }; ``` ## What is Context? Context is a little different in each method, but generally have the same methods. :::note More documentation to come later! ::: ### General ```ts project: ProjectModel; environment: { name: string; description: string; masterKey: string; appId: string; } | undefined; /** * * @param options * @param callback */ activity(options: { message: string; successMessage?: string; }, callback: () => Promise