在Ubuntu中这很简单;我可以运行应用程序使用:
$ NODE_ENV=production node myapp/app.js
但是,这在Windows上不起作用。是否有可以设置属性的配置文件?
在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')。
其他回答
我刚刚发现了一个很好的Node.js包,它可以用独特的语法定义环境变量,跨平台。
https://www.npmjs.com/package/cross-env
它允许你这样写:
cross-env NODE_ENV=production my-command
这非常方便!不再有Windows或Unix特定的命令!
你可以使用
npm run env NODE_ENV=production
这可能是最好的方法,因为它在Windows和Unix上都是兼容的。
来自npm run-script文档:
env脚本是一个特殊的内置命令,可用于列出脚本在运行时可用的环境变量。如果在包中定义了“env”命令,它将优先于内置命令。
如果你能在调用启动Windows上的Node.js时在同一行设置参数,那就太理想了。仔细看下面的内容,并按照上面说的那样运行:
你有两个选择:
在命令行: set NODE_ENV=production&&npm start 或 set NODE_ENV=production&&node index.js 在Windows上工作的技巧是你需要删除“&&”前后的空白。配置您的包。Json文件与start_windows(见下文)下面。然后在命令行执行“npm Run start_windows”。 / / package.json "脚本":{ "start": "node index.js" "start_windows": "set NODE_ENV=production&&node index.js" }
我在Visual Studio 2013的Windows 7 64位上使用Node.js的经验是,你需要使用
setx NODE_ENV development
从CMD窗口。并且您必须重新启动Visual Studio才能识别新的值。
set语法仅在设置它的cmd窗口的持续时间内有效。
在Node.js中的简单测试:
console.log('process.env.NODE_ENV = ' + process.env.NODE_ENV);
当使用set时返回'undefined',如果使用setx并重新启动Visual Studio,它将返回'development'。
首先在powershell类型
$env:NODE_ENV="production"
然后输入
node fileName.js
它将完美地显示所有输出。