最近项目本地开发时希望和生产环境区分数据库,本地是 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