我目前正在尝试使用运行流程spawn
。我试图从 shell 运行的内容如下;
NODE_ENV=production node app/app.js
这是运行它的代码;
var spawn = require('child_process').spawn;
var start = spawn('NODE_ENV=production',['node','app/app.js']);
但是,我收到以下错误;
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)
我怎样才能做到这一点使用spawn
?
Your 产卵的使用 http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options是不正确的:
spawn( command, args, options )
:
使用给定命令启动一个新进程,并在 args 中使用命令行参数。如果省略,args 默认为空数组。
第三个参数用于指定附加选项,默认为:
{ cwd: 未定义, env: process.env }
使用 env 指定新进程可见的环境变量,默认为 process.env。
So 环境变量NODE_ENV
应该在 options 参数上提供:
// ES6 Object spread eases extending process.env
spawn( 'node', ['app.js'], { env: { ...process.env, NODE_ENV: 'test' } })
也可以看看如何在 node.js 上调试“错误:spawn ENOENT”? https://stackoverflow.com/questions/27688804/how-to-debug-any-node-js-child-process-error-spawn-enoent
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)