Node.js 如何使用PM2仅将一个特定的nodeJS应用程序部署到一个特定的环境?

Node.js 如何使用PM2仅将一个特定的nodeJS应用程序部署到一个特定的环境?,node.js,deployment,digital-ocean,pm2,Node.js,Deployment,Digital Ocean,Pm2,我在Digital Ocean上部署了两个nodejs应用程序,PM2,我正在学习。 我想知道如何单独更新我的应用程序(服务) 目前,我的pm2配置如下所示: //ecosystem.config.js module.exports={ 应用程序:[ { 名称:`app1`, 脚本:'./app1.js', // ... }, { 名称:`app2`, 脚本:'./app2.js', // ... } ], 部署:{ 制作:{ 键:“”, 用户:“admin”, 主机:“”, 参考:'', 回购

我在Digital Ocean上部署了两个nodejs应用程序,PM2,我正在学习。 我想知道如何单独更新我的应用程序(服务)

目前,我的pm2配置如下所示:

//ecosystem.config.js
module.exports={
应用程序:[
{
名称:`app1`,
脚本:'./app1.js',
// ...
},
{
名称:`app2`,
脚本:'./app2.js',
// ...
}
],
部署:{
制作:{
键:“”,
用户:“admin”,
主机:“”,
参考:'',
回购协议:,
路径:'/home/admin/app/prod',
“部署后”:“./deploy.sh产品”
},
发展:{
键:“”,
用户:“admin”,
主机:“”,
参考:'',
回购协议:,
路径:'/home/admin/app/development',
“部署后”:“./deploy.sh开发”
},
}
}
我可以按环境进行部署,如
pm2部署生产


但是,我是否可以执行类似于
pm2 deploy development app2
的操作来仅更新app2?

您有很多方法可以做到这一点,对我来说,我总是在客户端文件夹和服务器文件夹中创建生态系统文件,然后在根文件夹中创建发布生态系统文件,如:

  • 客户
    • ecosystem.config.js
  • 服务器
    • ecosystem.config.js
  • ecosystem.config.js
根生态系统文件如下所示:

  deploy: {
    frontend: {
      ...other,
      path: '/app/easyv_spaceship',
      'post-deploy': 'cd ./client && npm install && npm run build'
    },
    backend: {
      ...other,
      path: '/app/easyv_spaceship',
      'post-deploy': 'cd ./server && npm install && npm run tsc && pm2 startOrRestart ecosystem.config.js --env production'
    }
  }

希望这能给你带来启发。

目前,我的应用程序都在同一个Git repo中,因此它们可以共享代码。我使用环境变量选择需要运行的服务。在您的示例中,前端和后端是否在同一回购协议中?是的,它们在同一回购协议中。PM2只需拉取repo,然后执行deploy命令,我认为您可以在deploy中添加类似
pro-app1
pro-app2
的命令,然后在deploy命令中执行不同的shell脚本。