在linux中通过node app.js运行项目有时候需要使用到环境变量,在package.json中配置脚本命令(需要先使用npm install cross-env -g)
"scripts": {
"dev": "cross-env NODE_ENV=development node ./app.js",
"prod": "cross-env NODE_ENV=production node ./app.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
但是会遇到持久运行的问题,一般可以通过pm2或者forever来持久运行,但是运行npm命令要配置环境变量,使用nohup运行,比较麻烦,参考如下:下图地址
这里介绍一个投机取巧的办法解决这个问题,直接在app.js第一行设置
process.env.NODE_ENV='production'
console.log(process.env.NODE_ENV)//终端打印的就是production,app后面所有的代码都能通过process.env.NODE_ENV获取到当前的环境
这样就可以直接通过pm2或者forever进行项目持久化启动了
下面介绍一下forever持久化启动node项目(需要先安装好nodejs):
1.使用node命令安装forever工具 npm install forever -g
2.在项目根路径启动项目 forever start app.js
3.关闭项目 forever stopall
4.其他forever命令:
forever start -l forever.log --minUptime 1000 --spinSleepTime 1000 server.js (node打印的日志输出到/root/.forever目录下的forever.log)
forever start -l forever.log -a --minUptime 1000 --spinSleepTime 1000 server.js (继续在forever.log后面append日志) 在/root/.forever目录找到forever.log即可查看日志