用于 express.js 环境。有什么建议?
如何在 OS X 中将 NODE_ENV 设置为生产/开发
IT技术
javascript
node.js
macos
environment-variables
2021-01-14 04:05:27
6个回答
在运行您的应用程序之前,您可以在控制台中执行此操作,
export NODE_ENV=production
或者,如果你在 Windows 中,你可以试试这个:
SET NODE_ENV=production
对于 PowerShell:
$env:NODE_ENV="production"
或者你可以像这样运行你的应用程序:
NODE_ENV=production node app.js
你也可以在你的 js 文件中设置它:
process.env.NODE_ENV = 'production';
但是我不建议在您的运行时文件中执行此操作,因为在您的服务器中打开 VIM 并将其更改为生产环境并不容易。你可以在你的目录中创建一个 config.json 文件,每次你的应用程序运行时,它都会从中读取并设置配置。
在 package.json 中:
{
...
"scripts": {
"start": "NODE_ENV=production node ./app"
}
...
}
然后在终端运行:
npm start
.env
这里还没有人提到?.env
在您的应用程序根目录中创建一个文件,然后require('dotenv').config()
读取值。易于更改,易于阅读,跨平台。
export NODE_ENV=production
不好解决,重启后消失。
如果您不想再担心该变量 - 将其添加到此文件中:
/etc/environment
不要使用导出语法,只需编写(如果某些内容已经存在,则在新行中):
NODE_ENV=production
它在重新启动后工作。您将不必再在任何地方重新输入export NODE_ENV=production命令,只需将 node 与您喜欢的任何东西一起使用 - 永远,pm2 ...
对于 Heroku:
heroku config:set NODE_ENV="production"
这实际上是默认的。
为了不必担心您是在 Windows、Mac 还是 Linux 上运行脚本,请安装cross-env包。然后您可以轻松使用您的脚本,如下所示:
"scripts": {
"start-dev": "cross-env NODE_ENV=development nodemon --exec babel-node -- src/index.js",
"start-prod": "cross-env NODE_ENV=production nodemon --exec babel-node -- src/index.js"
}
对这个包的开发者的大量支持。
npm install --save-dev cross-env
其它你可能感兴趣的问题