在express.js环境中使用。有什么建议吗?


当前回答

您可以按环境运行,如下所示,

NODE_ENV=production npm run start

其他回答

在运行你的应用程序之前,你可以在控制台执行这个操作,

export NODE_ENV=production

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

SET NODE_ENV=production

美国小妞PowerShell:

$env:NODE_ENV="production"

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

NODE_ENV=production node app.js

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

process.env.NODE_ENV = 'production';

但我不建议在运行时文件中执行,因为在服务器中打开VIM并将其更改为生产环境并不容易。你可以进行配置。Json文件,每次你的应用程序运行时,它都会从中读取并设置配置。

我没有看到任何地方明确提到Docker解决方案;希望这能帮助到一些人:

在Dockerfile:

FROM node:16.11-alpine3.14 AS production
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
...

Windows CMD -> set NODE_ENV=production

Windows Powershell -> $env:NODE_ENV=“production”

MAC -> export 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
npm start --mode production
npm start --mode development

与 process.env。NODE_ENV = '生产'