如何通过Yarn在pm2启动中指定应用程序版本



我有一个Node.js+Express应用程序,让我们调用myapp v0.3.0,我从Yarn脚本开始,例如:

yarn prod

我已经用PM2部署了我的生产应用程序,使用:

pm2 start yarn --name myapp -- prod

这是有效的,并且应用程序部署正确,但当我查看pm2 list时,PM2应用程序的版本是Yarn的版本(0.39.1(,而不是myapp的版本(0.3.0(:

┌────┬───────┬───────────┬─────────┬──────┬────────┬────────┬───┬────────┬─────┬────────┬──────┬──────────┐
│ id │ name  │ namespace │ version │ mode │ pid    │ uptime │ ↺ │ status │ cpu │ mem    │ user │ watching │
├────┼───────┼───────────┼─────────┼──────┼────────┼────────┼───┼────────┼─────┼────────┼──────┼──────────┤
│ 1  │ myapp │ default   │ 0.39.1  │ fork │ 124777 │ 43h    │ 1 │ online │ 0%  │ 49.2mb │ pm2  │ disabled │
└────┴───────┴───────────┴─────────┴──────┴────────┴────────┴───┴────────┴─────┴────────┴──────┴──────────┘

我的CI/CD工具使用PM2中的version字段来管理自动部署。有没有办法让版本跟踪应用程序版本(例如0.3.0(而不是Yarn的版本?

在package.json:的同一目录中添加yarnwrapper bash脚本

#!/bin/bash
eval "/${HOME}/.nvm/versions/node/$(node -v)/bin/yarn prod"

使用pm2:启动

pm2 start yarnwrapper --name myapp --interpreter bash

最新更新