gpt4 book ai didi

javascript - electro-forge:如何指定钩子(Hook)?

转载 作者:行者123 更新时间:2023-12-03 12:32:45 30 4
gpt4 key购买 nike

目标

我想在 Electron-forge 的打包步骤之前删除一些文件夹,因为 package.json 中的选项 ignore.roge.config 不会删除我指定忽略某些包的所有中间文件夹。这些中间文件夹通常是在打包期间的 native 构建过程中生成的。

问题

但是添加hooks字段with the documented events似乎不起作用,例如,

拥有这样的 package.json 字段似乎没有添加任何内容,即,我没有看到预期的控制台日志。

  "config": {
"forge": {
"packagerConfig": {
"icon": "src/images/myapp",
"ignore": [
"/.gitignore",
"/.vscode",
"/yarn.lock",
"/node_modules/mydep/build/",
"/node_modules/mydep/prebuilds/linux*"
]
},
"hooks": {
"prePackage": "async () => {\"console.log("this is prepackage step.");\"} "
},
"makers": [
{
"name": "@electron-forge/maker-zip",
"platforms": [
"darwin",
"win32"
]
}
]
}
},

引用a related elctron-forge github issue ,我也尝试过将 JS 源文件提供给 hooks


"hooks": "require:./hooks.js",

hooks 脚本的样子

{
prePackage: async () => {
console.log('this is prepackage step.');
}
}

这也不起作用。

更糟糕的是,我什至无法以这种方式指定多个钩子(Hook):

{
generateAssets: async () => {
console.log('We should generate some assets here');
},
prePackage: async (forgeConfig, options) => {
console.error('lbn: prePackage');
}
}

上面的代码在运行yarn make时出现以下错误:

An unhandled error has occurred inside Forge:
Unexpected token ':'
/path/to/myapp/hooks.js:5
prePackage: async (forgeConfig, options) => {
^

SyntaxError: Unexpected token ':'
at wrapSafe (internal/modules/cjs/loader.js:1116:16)
at Module._compile (internal/modules/cjs/loader.js:1164:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1049:32)
at Function.Module._load (internal/modules/cjs/loader.js:937:14)
at Module.require (internal/modules/cjs/loader.js:1089:19)
at require (internal/modules/cjs/helpers.js:73:18)
at renderConfigTemplate (/path/to/myapp/node_modules/@electron-forge/core/src/util/forge-config.ts:100:20)
at _default (/path/to/myapp/node_modules/@electron-forge/core/src/util/forge-config.ts:145:3)
at /path/to/myapp/node_modules/@electron-forge/core/src/api/make.ts:96:19
error Command failed with exit code 1.

问题

指定钩子(Hook)的正确方法是什么?

最佳答案

我自己解决了。

我们应该将钩子(Hook)放置为普通的全局模块


// ./hooks.js

const fs = require('fs');
const path = require('path');

module.exports = {

postPackage: async (forgeConfig, options) => {
console.warn('\n\npostPackage: exclude files ...\n\n');
}

}; // module.exports = {


然后在package.json中引用它

"hooks": "require:./hooks.js",

关于javascript - electro-forge:如何指定钩子(Hook)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64097951/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com