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

$ NODE_ENV=production node myapp/app.js

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


当前回答

对于多个环境变量,.env文件更方便:

# .env.example, committed to repo
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3
# .env, private, .gitignore it
DB_HOST=real-hostname.example.com
DB_USER=real-user-name
DB_PASS=REAL_PASSWORD

dotenv-safe很容易使用:

使用npm Install——save-dev dotenv-safe安装。 将它包含在代码中(最好在index.js的开头),并直接与进程一起使用它。env命令:

require('dotenv').load()
console.log(process.env.DB_HOST)   

不要忘记忽略VCS中的.env文件。

如果在.env中“定义”了一个变量,那么程序就会快速失败。Example作为环境变量或在.env中被取消设置。

其他回答

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

NODE_ENV=production node myapp/app.js

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

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

npm install -g win-node-env

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

$env:NODE_ENV="production"

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

set NODE_ENV=production

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

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

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

在Windows 10中,我使用$env:NODE_ENV="Production"

这在我的vscode终端上工作。但如果你的服务器正在监听,首先需要停止并设置你的env变量,然后重新启动应用程序。这种方法对我很有效。

似乎

{
   "start_windows": "set NODE_ENV=test"
}

对我没用。我目前正在我的Windows电脑上尝试这个功能。当我点击:

npm run start_windows

它会在控制台上执行,没有错误,但是当我尝试回显时

echo %NODE_ENV%

什么都没有出来,这意味着它不存在,它根本就没有设置……

PowerShell:

$env:NODE_ENV="production"