参数设置
在node开发过程中,我们经常使用npm run dev/build 命令
但是有时我们需要设置一些参数,在window系统中需要手动安装 cross-env
npm i cross-env -D
然后在script中添加参数设置
"scripts": { "test": "cross-env NODE_ENV=development node index.js" }
这样我们就可以随意设置我们需要的参数了。
使用PM2,为应用开启一个长进程
在线上 我们在命令行窗口,使用nmp run build启动我们项目后 ,当窗口关闭后,我们的应用进程也随之关闭了。
这时候,我们需要引入PM2 。在我们的云服务器上全局安装
npm install pm2 -g
这时再用pm2启动应用。这样即使关闭了我当前的xshell窗口。我的应用还是可以正常访问的。
pm2 start/stop index.js
或者在script中设置
"scripts": { "test": "cross-env NODE_ENV=development node index.js" "build": "pm2 start/stop index.js"
}
PM2启动应用时的参数设置
在根目录新建ecosystem.config.js配置文件
module.exports = { apps: [ { // 生产环境 name: "prod", // 项目启动入口文件 script: "./index.js", // 项目环境变量 env: { "NODE_ENV": "production" } },
{ // 测试环境 name: "test", // 项目启动入口文件 script: "./index.js", // 项目环境变量 env: { "NODE_ENV": "test" } }
] }
当然这里你除了设置生产环境配置,测试和预发环境也是相同配形式,通过apps这个数组接受不同环境的配置对象。
再在我们的script中配置
"scripts": { "test": "cross-env NODE_ENV=development node index.js", "dev": "supervisor --harmony index.js", "build": "pm2 start ecosystem.config.js --only prod --watch" // 这里我只在线上使用了PM2 },
这样我们当npm run test 或者 npm run build时
我们在node环境中通过 process.env.NODE_ENV 来获取我们的NODE_ENV参数。