Skip to content

Build Hooks

Hooks

Node.js 8

All examples assumed that you use latest Node.js 8.11.x or higher.

Electron-Builder / app-builder-lib / Hooks

Extended by

Properties

afterAllArtifactBuild?

readonly optional afterAllArtifactBuild: null | string | Hook<BuildResult, string[]>

The function (or path to file or module id) to be run after all artifacts are built.

(buildResult: BuildResult): Promise<Array<string>> | Array<string>

Configuration in the same way as afterPack (see above).

myAfterAllArtifactBuild.js

exports.default = function () {
  // you can return additional files to publish
  return ["/path/to/additional/result/file"]
}

afterExtract?

readonly optional afterExtract: null | string | Hook<PackContext, any>

The function (or path to file or module id) to be run after the prebuilt Electron binary has been extracted to the output directory Same setup as beforePack


afterPack?

readonly optional afterPack: null | string | Hook<PackContext, any>

The function (or path to file or module id) to be run after pack (but before pack into distributable format and sign). Same setup as beforePack


afterSign?

readonly optional afterSign: null | string | Hook<PackContext, any>

The function (or path to file or module id) to be run after pack and sign (but before pack into distributable format). Same setup as beforePack


appxManifestCreated?

readonly optional appxManifestCreated: null | string | Hook<string, any>

The function (or path to file or module id) to be run after Appx manifest created on disk - not packed into .appx package yet.


artifactBuildCompleted?

readonly optional artifactBuildCompleted: null | string | Hook<ArtifactCreated, any>

The function (or path to file or module id) to be run on artifact build completed. Same setup as beforePack


artifactBuildStarted?

readonly optional artifactBuildStarted: null | string | Hook<ArtifactBuildStarted, any>

The function (or path to file or module id) to be run on artifact build start. Same setup as beforePack


beforeBuild?

readonly optional beforeBuild: null | string | Hook<BeforeBuildContext, boolean | void>

The function (or path to file or module id) to be run before dependencies are installed or rebuilt. Works when npmRebuild is set to true. Resolving to false will skip dependencies install or rebuild.

If provided and node_modules are missing, it will not invoke production dependencies check.


beforePack?

readonly optional beforePack: null | string | Hook<PackContext, any>

The function (or path to file or module id) to be run before pack.

(context: BeforePackContext): Promise<any> | any

As function

beforePack: async (context) => {
  // your code
}

Because in a configuration file you cannot use JavaScript, can be specified as a path to file or module id. Function must be exported as default export.

"build": {
  "beforePack": "./myBeforePackHook.js"
}

File myBeforePackHook.js in the project root directory:

myBeforePackHook.js

exports.default = async function(context) {
  // your custom code
}

electronDist?

readonly optional electronDist: null | string | Hook<PrepareApplicationStageDirectoryOptions, string>

The function (or path to file or module id) to be run when staging the electron artifact environment. Returns the path to custom Electron build (e.g. ~/electron/out/R) or folder of electron zips.

Zip files must follow the pattern electron-v${version}-${platformName}-${arch}.zip, otherwise it will be assumed to be an unpacked Electron app directory


msiProjectCreated?

readonly optional msiProjectCreated: null | string | Hook<string, any>

The function (or path to file or module id) to be run after MSI project created on disk - not packed into .msi package yet.


onNodeModuleFile?

readonly optional onNodeModuleFile: null | string | Hook<string, boolean | void>

The function (or path to file or module id) to be run on each node module file. Returning true/false will determine whether to force include or to use the default copier logic