gpt4 book ai didi

node.js - 使用带有 NODE_ENV=production 的 spawn 函数

转载 作者:IT老高 更新时间:2023-10-28 22:02:40 26 4
gpt4 key购买 nike

我目前正在尝试使用 spawn 运行进程。我试图从 shell 运行的是以下内容;

NODE_ENV=生产 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 做到这一点?

最佳答案

您的usage of spawn不正确:

spawn( command, args, options ):

Launches a new process with the given command, with command line arguments in args. If omitted, args defaults to an empty Array.

The third argument is used to specify additional options, which defaults to:

{ cwd: undefined, env: process.env }

Use env to specify environment variables that will be visible to the new process, the default is process.env.

所以环境变量 NODE_ENV 应该在 options 参数中提供:

// ES6 Object spread eases extending process.env
spawn( 'node', ['app.js'], { env: { ...process.env, NODE_ENV: 'test' } }})

另见 How do I debug "Error: spawn ENOENT" on node.js?

关于node.js - 使用带有 NODE_ENV=production 的 spawn 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20825157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com