• 技术文章 >web前端 >js教程

    手把手教你安装和配置pm2,实现自动化部署node项目

    青灯夜游青灯夜游2021-12-29 19:16:18转载139
    pm2怎么自动化部署nodejs项目?下面本篇文章给大家介绍一下安装和配置pm2,并实现自动化部署node项目的方法,希望对大家有所帮助!

    1、pm2简介

    pm2(process manager)是一个进程管理工具,维护一个进程列表,可以用它来管理你的node进程,负责所有正在运行的进程,并查看node进程的状态,也支持性能监控,负载均衡等功能。

    1.1、使用pm2管理的node程序的好处

    2、pm2安装与使用

    2.1、全局安装

    npm install pm2 -g

    2.2、常用命令

    1.png

    2.png

    3.png

    4.png

    5.png

    开启启动设置,此处是CentOS系统,其他系统替换最后一个选项(可选项:ubuntu, centos, redhat, gentoo, systemd, darwin, amazon)

        pm2 startup centos

    然后按照提示需要输入的命令进行输入

    最后保存设置

    pm2 save

    3、通过pm2配置文件来自动部署项目

    确保服务器安装了pm2,没有安装的话先安装

    npm install pm2 -g

    3.1 在项目根目录下新建一个 deploy.yaml 文件

    # deploy.yaml
    apps:
      - script: ./start.js       # 入口文件
        name: 'app'              # 程序名称
        env:                     # 环境变量
          COMMON_VARIABLE: true
        env_production:
          NODE_ENV: production
    
    deploy:                     # 部署脚本
      production:               # 生产环境
        user: lentoo            # 服务器的用户名
        host: 192.168.2.166     # 服务器的ip地址
        port: 22                # ssh端口
        ref: origin/master      # 要拉取的git分支
        ssh_options: StrictHostKeyChecking=no # SSH 公钥检查
        repo: https://github.com/**.git # 远程仓库地址
        path: /home              # 拉取到服务器某个目录下
        pre-deploy: git fetch --all # 部署前执行
        post-deploy: npm install &&  pm2 reload deploy.yaml --env production # 部署后执行
        env:
          NODE_ENV: production

    3.2 配置git的ssh免密认证

    6.png

    3.3 使用pm2部署项目

    每次部署前先将本地的代码提交到远程git仓库

    pm2 deploy deploy.yaml production setup

    部署完成后,既可登陆服务器查看配置的目录下是否从git上拉取了项目

    pm2 deploy deploy.yaml production update

    3.4 该部署流程同样适用前端项目

    如vue-cli的项目,自动部署到服务器,自动执行npm run build 命令,生成的dist目录,指定到nginx的静态文件目录下。

    4、可能会遇到的坑

    pm2 deploy deploy.yaml production setup

    7.png

    解决方案:使用git命令行来执行

    更多node相关知识,请访问:nodejs 教程!!

    以上就是手把手教你安装和配置pm2,实现自动化部署node项目的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除
    专题推荐:pm2 动化部署项目 node
    上一篇:jquery怎样实现a标签的功能 下一篇:javascript中怎么将一维数组转为三维数组?方法介绍

    相关文章推荐

    • 聊聊node中怎么借助第三方开源库实现网站爬取功能• 通过7个问题来简单认识一下Node.js• 一文聊聊Node.js中的EventEmitter模块• nodejs中fs是什么意思• Node.js学习之聊聊Events模块

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网