使用PM2,在生产环境稳定运行你的node项目

PM2

一个 node,本身就用几行代码,就可以启动个 server 进程,监听个端口,为大家提供 Web 服务

一、依赖安装

npm install pm2 -g

二、命令行启动

  1. 普通执行启动

    pm2 start <js 文件路径 >.js

  2. 携带参数启动

    pm2 start < 某种方式 > -- --param_name param_value

  3. npm 脚本启动

    pm2 start npm -- run

    pm2 start yarn -- run

🌰 举个例子

  • 项目结构
  • 普通启动
  • npm 脚本命令启动

三、配置文件启动

  1. pm2 配置文件生成

    pm2 init

  1. 配置文件属性
javascript 复制代码
// ecosystem.config.js

module.exports = {
  apps : [{
    name: 'levenx-world', //pm2启动项目名称
    script: 'app.js', //启动脚本入口  ( npm run start )
    args: 'one two', // 启动脚本参数
    instances: 1, //启动实例个数 (max)
    autorestart: true, //自动启动
    watch: false, //是否开启watch模式
    max_memory_restart: '1G',//最大内存
    env: { //环境配置
      NODE_ENV: 'development'
    },
    env_production: {
      NODE_ENV: 'production'
    }
  }],
};
  1. 配置文件启动

    npm run ecosystem.config.js

四、项目自动化部署

通过一行命令, pm2 工具自动化部署项目到云服务。

  1. 配置文件

    javascript 复制代码
    module.exports = {
      deploy : {
        production : {
          user : 'levex', //服务器用户名
          host : 'localhost', //服务器localhost
          ref  : 'origin/master', //git分支
          repo : 'git@github.com:repo.git', //git 地址
          path : '/Users/levenx/Desktop', // 服务器源码存储地址
          'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env production' //部署脚本
        }
      }
    };
  2. 初始化项目部署

    pm2 deploy apps init

  3. 项目部署更新

    pm2 deploy apps update

相关推荐
dreams_dream11 小时前
微信小程序-使用npm包
微信小程序·小程序·npm
非优秀程序员1 天前
第02章 杭电的英语老师与一台服务器|《互联网产品恩仇录》
数据库·node.js·代码规范
周杰伦的稻香1 天前
Hexo 腾讯视频追剧页插件:hexo-tengxun-eucalyptus 安装使用
npm
Hone1 天前
juejin-skills 系列 ②:我把「看掘金热榜」也做成了 Agent 技能
开源·node.js·ai编程
w16632 天前
零 Root 无 PC:我让 AI 在手机上把鸿蒙 HDC 协议的底裤扒了下来
node.js
严肃小白兔3 天前
TanStack Router 更新构建工具链:Node.js 兼容性、路由分割与前端工程实践
前端·node.js·状态模式
一缕82年的清风3 天前
用了 3 年 Notion 和 Obsidian 后,为什么我最终把所有身家搬到了思源笔记?
node.js
Dumbness4 天前
一份 JSON 生成增删改查接口,入参清洗漏了什么:Number(" ") 是 0,搜 100% 把 1000 元券也搜出来
node.js·express
FungLeo5 天前
成为全栈·基础补充·Node.js 运行时:事件循环与异步
javascript·node.js·事件循环·后端开发·异步编程·成为全栈
用户087308654875 天前
用 GUI 自动化写了一个群聊 AI:5 个真实事故,和 7 条让 AI 不像机器人的设计
node.js