最近项目本地开发时希望和生产环境区分数据库,本地是 nodemon 启动 app.js 的,生产环境是通过 pm2 启动的,记录在macOS开发时的配置。
  在 app.js 中打印process.env.NODE_ENV,可分别输出 development、production。
1  | console.log('NODE_ENV', process.env.NODE_ENV)  | 
¶一、本地运行
  本地运行时希望process.env.NODE_ENV拿到的值是development,可以在package.json中的script设置:
1  | "scripts": {  | 
注意
- 其他文章看到说 Linux、macOS 使用 export,Windows 使用 set,未验证 set 是否有效
 - nodemon 参考 node 自动编译
 
  启动时执行npm run dev。
¶二、生产环境
  生产环境运行时希望process.env.NODE_ENV拿到的值是production,此随笔涉及到的项目是用 pm2 部署的,关于 pm2 可参考 使用 pm2 部署 node 项目。
对应的 pm2 配置文件内容如下:
1  | {  | 
对应的 start.sh 文件内容如下:
1  | git pull origin master  | 
注意
- 常见命令为:
 pm2 start app.js --env production