参数设置node
在node开发过程当中,咱们常用npm run dev/build 命令shell
可是有时咱们须要设置一些参数,在window系统中须要手动安装 cross-envnpm
npm i cross-env -D
而后在script中添加参数设置 数组
"scripts": { "test": "cross-env NODE_ENV=development node index.js"
}
这样咱们就能够随意设置咱们须要的参数了。服务器
使用PM2,为应用开启一个长进程app
在线上 咱们在命令行窗口,使用nmp run build启动咱们项目后 ,当窗口关闭后,咱们的应用进程也随之关闭了。测试
这时候,咱们须要引入PM2 。在咱们的云服务器上全局安装ui
npm install pm2 -g
这时再用pm2启动应用。这样即便关闭了我当前的xshell窗口。个人应用仍是能够正常访问的。spa
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参数。