spawn pm2进程只能启动.bat或.exe。需要启用{shell:true}才能真正起作用。
在Windows上调试生成代码时,“ spawn pm2 ENOENT”的荒谬错误显而易见。在深入研究并在神灵StackOverflow上找不到真正的解决方案之后,我研究了很多GitHub问题,终于找到了适用于Windows衍生工具的合适解决方案。
找到了正确的解决方法https://github.com/nodejs/node-v0.x-archive/issues/2318
@OrangeDog好吧,您还是无法真正编写可移植的批处理文件。
@DrPizza今天建议我们可以添加一个{shell:true}选项来生成。我有点喜欢这个主意。它允许将spawn用于与exec相同的目的,而无需缓冲所有输出。目前,我们在exec和execFile之间也有奇怪的区别;我们可以使这些功能相同,但shell选项的默认值不同。 @ ry,@ bnoordhuis,你们如何看待?
让env = env ==='生产'吗? 'prod':'sand'; //环境变量的上下文
let deploy = spawn('pm2',['deploy',env,'update','&&','pm2','deploy',env,'exec','“ sudo pm2 reload”'], {shell:true});