我有一个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