javascript - 在 Electron Forge 配置中区分 make 和 package

标签 javascript node.js electron electron-forge

我有一个设置了许多选项的 Electron Forge 配置文件,并且所有这些都可以自动和精美地工作(感谢 Forge 团队!!)。但是我发现在某些情况下我可能想要处理一个空的 npm run package不同于完整的npm run make (据我了解,它运行 package 脚本作为其进程的一部分)。有没有办法以编程方式检测 package操作直接从命令行运行,而不是作为 make 的一部分。过程,以便我可以调用不同的 Forge 配置选项?例如,有时我只想快速构建本地测试并跳过某些不必要的耗时步骤,例如在 macOS 上进行公证和一些 prePackage/postPackage钩子(Hook)函数。理想情况下,我正在寻找一种在我的 Forge 配置文件中执行此类操作的方法:

//const isMake = ???
module.exports = {
    packagerConfig: {
        osxNotarize: isMake ? {appleId: "...", appleIdPassword: "..."} : undefined
    },
    hooks: {
        prePackage: isMake ? someFunction : differentFunction
    }
}

最佳答案

您可以通过 process.argv[1] 进行操作:

let isMake;
if (process.argv[1].endsWith('electron-forge-make.js') {
  isMake = true;
} else {
  isMake = false;
}
module.exports = {
  // ...
}
调用process.argv时,它返回一个包含两个字符串的数组:第一个带有 node.js 目录,第二个带有 electron forge 模块目录。
make 模块以 electron-forge-make.js 结尾并且包模块以 electron-forge-package.js 结尾.因此,您可以查看它的末尾并确定它是 package 还是制造。

关于javascript - 在 Electron Forge 配置中区分 make 和 package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64841755/

相关文章:

javascript - 如何准备 grunt 来使用 app.js 准备 dist 文件夹?

node.js - 如何将 token 从中间件传递到路由

javascript - Angular 将 js 函数的值读取为未定义,即使该对象具有值

javascript - UI Bootstrap Fade Carousel 闪烁白色

php - <button> 相同按钮,多个位置,不同代码

javascript - 多卡翻转 jQuery

node.js - 如何在我的 IDE 中添加 Intellisense

javascript - 如何替换数组中的项目?

javascript - 使用 nw.Window.open() 打开的 nw.js 窗口中的 "Uncaught ReferenceError: require is not defined"

javascript - Atom Electron 捕获所有键盘事件,即使应用程序未聚焦