在Ubuntu中这很简单;我可以运行应用程序使用:

$ NODE_ENV=production node myapp/app.js

但是,这在Windows上不起作用。是否有可以设置属性的配置文件?


当前回答

当前版本的Windows使用Powershell作为默认shell,因此使用:

$env:NODE_ENV="production"

请看下面@jsalonen的回答。如果您在CMD(不再维护),使用

set NODE_ENV=production

这应该在您打算运行Node.js应用程序的命令提示符中执行。

上面的代码行将为执行命令的命令提示符设置环境变量NODE_ENV。

要全局设置环境变量,使它们在单个命令提示符之外持续存在,您可以在控制面板中的系统中找到该工具(或在开始菜单中的搜索框中键入'environment')。

其他回答

当前版本的Windows使用Powershell作为默认shell,因此使用:

$env:NODE_ENV="production"

请看下面@jsalonen的回答。如果您在CMD(不再维护),使用

set NODE_ENV=production

这应该在您打算运行Node.js应用程序的命令提示符中执行。

上面的代码行将为执行命令的命令提示符设置环境变量NODE_ENV。

要全局设置环境变量,使它们在单个命令提示符之外持续存在,您可以在控制面板中的系统中找到该工具(或在开始菜单中的搜索框中键入'environment')。

要在PowerShell中运行应用程序(因为&&是不允许的):

($env:NODE_ENV="production") -and (node myapp/app.js)

请注意,服务器正在做的事情的文本输出被抑制了,我不确定这是否可以修复。(扩展@jsalonen的回答。)

下面是非命令行方法:

在Windows 7和Windows 10操作系统中,在开始菜单搜索框中输入“environment”,选择“编辑系统环境变量”。

或者,导航到控制面板\系统和安全\系统,然后单击高级系统设置

这将打开“系统属性”对话框,选中“高级”选项卡。在底部,你会看到一个环境变量…按钮。点击这个。

将打开“环境变量”对话框。

在底部,在系统变量下,选择New…这将打开“新建系统变量”对话框。

输入变量名和值,然后单击OK。

您需要关闭所有cmd提示并重新启动服务器,以便process.env可以使用新变量。如果仍然没有显示,请重新启动计算机。

PowerShell:

$env:NODE_ENV="production"

我写了一个模块win-node-env,你可以像在*nix中一样运行你的命令。

NODE_ENV=production node myapp/app.js

它通过创建NODE_ENV来工作。cmd命令,设置NODE_ENV环境变量,并使用该命令的其余部分及其参数生成一个子进程。

只需安装它(全局),并运行你的npm脚本命令,它应该会自动使它们工作。

npm install -g win-node-env