在Ubuntu中,这非常简单;我可以使用以下方式运行该应用程序:
$ NODE_ENV=production node myapp/app.js
但是,这在Windows上不起作用。是否可以在其中配置属性的配置文件?
在Ubuntu中,这非常简单;我可以使用以下方式运行该应用程序:
$ NODE_ENV=production node myapp/app.js
但是,这在Windows上不起作用。是否可以在其中配置属性的配置文件?
我使用npm脚本运行不含“ &&”的gulp任务
NODE_ENV = testcases npm运行seed-db
这不会设置变量,但是在许多情况下很有用。我不建议将其用于生产,但是如果您正在使用npm,那应该没问题。
npm install --production
如果您使用的是GITBASH终端
"set NODE_ENV=production"
不起作用,您可以输入“ export”NODE_ENV=production"
Powershell类型中的第一个
$env:NODE_ENV="production"
然后输入
node fileName.js
它将完美显示所有输出。
要在PowerShell中运行您的应用程序(因为&&
不允许这样做):
($env:NODE_ENV="production") -and (node myapp/app.js)
请注意,服务器正在执行的操作的文本输出被抑制,因此我不确定这是否可以解决。(扩展@jsalonen的答案。)
只是为了澄清一下,对于其他可能正在拔头发的人来说……
如果您在Windows上使用git bash,set node_env=production&& node whatever.js
则似乎无法正常工作。而是使用本机cmd。然后,set node_env=production&& node whatever.js
按预期使用作品。
我的用例:
我在Windows上开发,因为我的工作流程是很多快,但我需要确保我的应用程序的开发专用的中间件并没有在生产环境中射击。
我写了一个模块win-node-env,您可以像在* nix中一样运行命令。
NODE_ENV=production node myapp/app.js
它通过创建一个NODE_ENV.cmd
设置NODE_ENV
环境变量并使用其余命令及其arg生成子进程的子进程来工作。
只需安装(全局),然后运行您的npm脚本命令,它将自动使它们工作。
npm install -g win-node-env
如果可以在Windows上启动Node.js的调用所在的行中设置参数,那将是理想的选择。仔细查看以下内容,并严格按照说明运行它:
您有以下两种选择:
在命令行中:
set NODE_ENV=production&&npm start
要么
set NODE_ENV=production&&node index.js
在Windows上运行的技巧是您需要删除“ &&”之前和之后的空格。使用下面的start_windows(请参见下文)配置了package.json文件。然后在命令行中运行“ npm run start_windows”。
//package.json
"scripts": {
"start": "node index.js"
"start_windows": "set NODE_ENV=production&&node index.js"
}
在PowerShell中:
$env:NODE_ENV="production"
我刚刚找到了一个不错的Node.js程序包,它可以使用跨平台的独特语法对定义环境变量有很大帮助。
https://www.npmjs.com/package/cross-env
它允许您编写如下内容:
cross-env NODE_ENV=production my-command
哪个很方便!不再有Windows或Unix专用命令!
Windows的当前版本使用Powershell作为默认外壳,因此请使用:
$env:NODE_ENV="production"
根据下面的@jsalonen的答案。如果您使用的是CMD(不再维护),请使用
set NODE_ENV=production
这应该在您打算运行Node.js应用程序的命令提示符下执行。
上一行将在执行命令的命令提示符处设置环境变量NODE_ENV。
要全局设置环境变量,以使它们仅在单个命令提示符后仍然存在,您可以在“控制面板”的“系统”中找到该工具(或通过在“开始”菜单的搜索框中键入“ environment”)。
如果NODE_ENV或任何其他环境变量未提供正确的值,请重新启动VS代码。重新启动后应该可以使用。