如何在OS X中将NODE_ENV设置为生产/开发

用于express.js环境。 有什么build议么?

在运行应用程序之前,您可以在控制台中执行此操作,

export NODE_ENV=production 

或者如果你在窗口中,你可以试试这个:

 SET NODE_ENV=production 

或者你可以像这样运行你的应用程序:

 NODE_ENV=production node app.js 

你也可以在你的js文件中设置它:

 process.env.NODE_ENV = 'production'; 

但是我不build议在运行时文件中这样做,因为在您的服务器中打开VIM并将其更改为生产并不容易。 您可以在您的目录中创build一个config.json文件,并且每次运行应用程序时,都会从中读取并设置configuration。

在package.json中:

 { ... "scripts": { "start": "NODE_ENV=production node ./app" } ... } 

然后在terminal运行:

 npm start 

export NODE_ENV=production不好的解决scheme,重启后消失。

如果你不想担心这个variables – 把它添加到这个文件中:

 /etc/environment 

不要使用导出语法,只需写入(如果某些内容已经存在,则换行):

 NODE_ENV=production 

它在重新启动后工作。 你不必再重新inputNODE_ENV =生产命令,只需要使用任何你想要的节点 – 永远,pm2 …

对于heroku:

 heroku config:set NODE_ENV="production" 

这实际上是默认的。

这是关于NODE_ENV的一篇很好的文章: http : //www.hacksparrow.com/running-express-js-in-production-mode.html 。

对于从Grunt自动设置,你可以使用https://npmjs.org/package/grunt-env插件。;

 heroku config:set NODE_ENV="production" 

没有人在这里提到.env呢? 在您的应用程序根目录中创build一个.env文件,然后require('dotenv').config()并读取值。 轻松更换,轻松阅读,跨平台。

https://www.npmjs.com/package/dotenv

在OSX上,我build议将export NODE_ENV=development添加到~/.bash_profile和/或~/.bashrc和/或~/.profile

我个人将这个条目添加到我的~/.bashrc ,然后让~/.bash_profile ~/.profile导入这个文件的内容,所以它在不同的环境中是一致的。

做这些添加之后,一定要重新启动您的terminal来拿起设置。

对于Windows Powershell使用命令

 $env:NODE_ENV="productions" ; node app.js 

如果您在应用程序中使用webpack ,则可以使用DefinePlugin将其设置在那里。

因此,在您的plugin部分,将NODE_ENV设置为production

 plugins: [ new webpack.DefinePlugin({ 'process.env.NODE_ENV': '"production"', }) ] 

丹尼尔有一个很好的答案,这是正确部署(设置和忘记)过程更好的方法。

对于那些使用快递。 你可以使用grunt-express-server,这也很棒。 https://www.npmjs.org/package/grunt-express-server

如果你在窗户上。 然后首先打开你的cmd在正确的文件夹

 set node_env={your env name here} 

按Enter键,然后你可以开始你的节点

 node app.js 

它将从您的env设置开始