Windows在node.js上调试“错误:生成ENOENT”

时间:2019-05-17 16:37:10

标签: node.js windows pm2 spawn enoent

Windows上的

spawn pm2进程只能启动.bat或.exe。需要启用{shell:true}才能真正起作用。

在Windows上调试生成代码时,“ spawn pm2 ENOENT”的荒谬错误显而易见。在深入研究并在神灵StackOverflow上找不到真正的解决方案之后,我研究了很多GitHub问题,终于找到了适用于Windows衍生工具的合适解决方案。

找到了正确的解决方法https://github.com/nodejs/node-v0.x-archive/issues/2318

@DrPizza解决方案

@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});

0 个答案:

没有答案