node应用cross-env参数设置及PM2参数设置方法

Posted shichangchun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node应用cross-env参数设置及PM2参数设置方法相关的知识,希望对你有一定的参考价值。

参数设置

在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参数。

 

以上是关于node应用cross-env参数设置及PM2参数设置方法的主要内容,如果未能解决你的问题,请参考以下文章

pm2

在 AWS Stack 上运行更多具有不同参数的 node.js 应用程序

如何使用参数启动 pm2?

使用cross-env解决跨平台设置NODE_ENV的问题

Failed at the @ watch script 'cross-env NODE_ENV=development 使用cross-env解决跨平台设置NODE_ENV的问题

cross-env 使用方式