在使用electronic-builder安装应用程序的同时,向用户环境添加命令行脚本

问题描述

我目前正在使用Electron 9.0.4Electron-Builder 22.8.0进行项目,但遇到的问题似乎不太困难,但在线上没有有效的解决方案! (至少我找不到)

我有执行所有UI任务的主程序和执行某些后端的命令行脚本。我拥有此命令行脚本的原因是,我可以在不打开窗口本身的情况下运行应用程序的某些部分。我的电脑上一切正常。运行npm link后,我的CL脚本被添加到我的环境变量中,我可以从控制台运行它。但是,当我尝试使用electron-builder进行构建时,会出现问题。

如果我在另一台计算机上使用我的Setup.exe,则不会将命令行脚本添加到环境变量中,并且我无法在electron中找到有关如何执行此操作的说明, nodejselectron-builder文档。我发现是关于另一个问题的建议,将npm -g install添加为安装后脚本,但这也没有效果

有人建议添加npm link作为安装后脚本,但是首先,如果我没有记错,此函数不适用于生产,其次,由于npm link触发了后置脚本,它创建了一个无限循环。一遍又一遍的安装脚本。

这就是将脚本添加到项目的方式

"bin": {
    "command-name": "/cl.js"
  }

感谢您的帮助!

解决方法

因为我找不到直接解决问题的方法,也不想在寻求其他解决方案的同时能够采用其他方法。

我决定退后一步,寻找另一种方法来解决我的问题,我得出的结论是,我确实不需要在命令行中添加脚本。我的解决方案是在启动常规应用程序时寻找某个参数。

if (process.argv.includes("cli")) {  /* Do commandline stuff */ }

找到自定义参数后,我只运行了应该从命令行运行的脚本。使用这种方法,您可以创建包含自定义参数的可执行文件的快捷方式,然后代替应用程序,而是运行命令行脚本。