问题描述
我目前正在使用Electron 9.0.4
和Electron-Builder 22.8.0
进行项目,但遇到的问题似乎不太困难,但在线上没有有效的解决方案! (至少我找不到)
我有执行所有UI任务的主程序和执行某些后端的命令行脚本。我拥有此命令行脚本的原因是,我可以在不打开窗口本身的情况下运行应用程序的某些部分。我的电脑上一切正常。运行npm link
后,我的CL脚本被添加到我的环境变量中,我可以从控制台运行它。但是,当我尝试使用electron-builder
进行构建时,会出现问题。
如果我在另一台计算机上使用我的Setup.exe
,则不会将命令行脚本添加到环境变量中,并且我无法在electron
中找到有关如何执行此操作的说明, nodejs
或electron-builder
文档。我发现是关于另一个问题的建议,将npm -g install
添加为安装后脚本,但这也没有效果。
有人建议添加npm link
作为安装后脚本,但是首先,如果我没有记错,此函数不适用于生产,其次,由于npm link
触发了后置脚本,它创建了一个无限循环。一遍又一遍的安装脚本。
这就是将脚本添加到项目的方式
"bin": {
"command-name": "/cl.js"
}
感谢您的帮助!
解决方法
因为我找不到直接解决问题的方法,也不想在寻求其他解决方案的同时能够采用其他方法。
我决定退后一步,寻找另一种方法来解决我的问题,我得出的结论是,我确实不需要在命令行中添加脚本。我的解决方案是在启动常规应用程序时寻找某个参数。
if (process.argv.includes("cli")) { /* Do commandline stuff */ }
找到自定义参数后,我只运行了应该从命令行运行的脚本。使用这种方法,您可以创建包含自定义参数的可执行文件的快捷方式,然后代替应用程序,而是运行命令行脚本。