跳到内容

构建钩子

钩子

Node.js 8

所有示例均假设您使用最新的 Node.js 8.11.x 或更高版本。

Electron-Builder / app-builder-lib / 钩子

扩展自

属性

afterAllArtifactBuild?

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

在所有构建产物构建完成后运行的函数(或文件路径或模块 ID)。

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

配置方式与 `afterPack` 相同(见上文)。

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, void>

预构建的 Electron 二进制文件提取到输出目录后运行的函数(或文件路径或模块 ID)。设置方式与 beforePack 相同


afterPack?

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

在打包(pack)之后(但在打包成可分发格式和签名之前)运行的函数(或文件路径或模块 ID)。设置方式与 beforePack 相同


afterSign?

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

在打包和签名之后(但在打包成可分发格式之前)运行的函数(或文件路径或模块 ID)。设置方式与 beforePack 相同


appxManifestCreated?

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

在 Appx 清单文件在磁盘上创建后(尚未打包到 .appx 包中)运行的函数(或文件路径或模块 ID)。


artifactBuildCompleted?

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

在构建产物构建完成后运行的函数(或文件路径或模块 ID)。设置方式与 beforePack 相同


artifactBuildStarted?

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

在构建产物构建开始时运行的函数(或文件路径或模块 ID)。设置方式与 beforePack 相同


beforeBuild?

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

在安装或重建依赖项之前运行的函数(或文件路径或模块 ID)。当 `npmRebuild` 设置为 `true` 时生效。返回 `false` 将跳过依赖项的安装或重建。

如果提供并且缺少 `node_modules`,则不会调用生产依赖项检查。


beforePack?

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

在打包(pack)之前运行的函数(或文件路径或模块 ID)。

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

作为函数

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

因为在配置文件中不能使用 JavaScript,所以可以指定为文件路径或模块 ID。函数必须作为默认导出导出。

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

项目根目录中的文件 `myBeforePackHook.js`

myBeforePackHook.js

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

electronDist?

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

在暂存 electron 构建产物环境时运行的函数(或文件路径或模块 ID)。返回自定义 Electron 构建(例如 `~/electron/out/R`)或 electron zip 文件夹的路径。

Zip 文件必须遵循 `electron-v${version}-${platformName}-${arch}.zip` 模式,否则将被假定为未打包的 Electron 应用目录


msiProjectCreated?

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

在 MSI 项目文件在磁盘上创建后(尚未打包到 .msi 包中)运行的函数(或文件路径或模块 ID)。


onNodeModuleFile?

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

每个 node module 文件上运行的函数(或文件路径或模块 ID)。返回 `true`/`false` 将决定是否强制包含或使用默认的复制逻辑