You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用PM2运行package.json中的npm production脚本?

如何用PM2执行package.json中的production脚本?

我来帮你梳理下两种常用的实现方式,都是生产环境里靠谱的方案:

方法一:直接通过命令行启动

你可以直接用PM2调用npm来执行你的production脚本,命令格式如下:

pm2 start npm --name "你的应用名称" -- run production

解释下各部分的作用:

  • --name "你的应用名称":给你的PM2进程起一个好记的名字,后续管理(重启、停止)的时候直接用这个名字就行,不用记进程ID
  • --:用来分隔PM2的参数和要传递给npm的参数,后面的run production就是你原本在npm里执行的命令

执行完这个命令后,你可以用pm2 status查看进程状态,确认是否正常运行。

方法二:使用PM2配置文件(推荐生产环境使用)

如果你的应用需要更多自定义配置(比如环境变量、日志路径、重启策略等),推荐用PM2的生态系统配置文件来管理,步骤如下:

  1. 在项目根目录创建一个名为ecosystem.config.js的文件,内容示例:
module.exports = {
  apps: [
    {
      name: 'prod-app', // 进程名称
      script: 'npm', // 要执行的程序
      args: 'run production', // 传递给npm的参数
      // 可选配置,根据你的需求添加
      env: {
        NODE_ENV: 'production' // 设置生产环境变量
      },
      log_file: './logs/production-all.log', // 合并日志文件路径
      out_file: './logs/production-out.log', // 标准输出日志
      error_file: './logs/production-error.log', // 错误日志
      autorestart: true, // 进程崩溃后自动重启
      watch: false, // 生产环境建议关闭文件监听,避免不必要的重启
      max_memory_restart: '1G' // 内存占用超过1G时自动重启进程
    }
  ]
};
  1. 启动进程:
pm2 start ecosystem.config.js

常用的PM2管理命令

  • 查看所有进程状态:pm2 status
  • 重启指定进程:pm2 restart prod-app(替换成你的进程名称)
  • 停止指定进程:pm2 stop prod-app
  • 删除指定进程:pm2 delete prod-app
  • 查看进程日志:pm2 logs prod-app

内容的提问来源于stack exchange,提问作者lulliezy

火山引擎 最新活动