手动搭建koa+ts项目框架(部署服务器使用pm2启动,并设置相关环境变量)

文章目录


前言

接着手动搭建koa+ts项目框架(node开发配置环境变量),当需要部署服务器时,结合pm2使用


一、什么是pm2?

pm2是一个进程管理工具,可以用它来管理你的node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能

  • pm2需要全局安装npm install -g pm2
  • 进入项目根目录
  • 启动进程/应用 pm2 start bin/wwwpm2 start app.js
  • 重命名进程/应用 pm2 start app.js --name wb123
  • 添加进程/应用 watch pm2 start bin/www --watch
  • 结束进程/应用 pm2 stop www
  • 结束所有进程/应用 pm2 stop all
  • 删除进程/应用 pm2 delete www
  • 删除所有进程/应用 pm2 delete all
  • 列出所有进程/应用 pm2 list
  • 查看某个进程/应用具体情况 pm2 describe www
  • 查看进程/应用的资源消耗情况 pm2 monit
  • 查看pm2的日志 pm2 logs
  • 若要查看某个进程/应用的日志,使用 pm2 logs www
  • 重新启动进程/应用 pm2 restart www
  • 重新启动所有进程/应用 pm2 restart all

二、配置环境变量

有两种文件配置形式

1、配置ecosystem.config.js文件

在开发完项目后,新建ecosystem.config.js文件到dist根目录

开启sit服务 pm2 start ecosystem.config.js --env sit

其他环境只需修改sit为不同环境即可

js 复制代码
module.exports = {
  apps: [
    {
      name: "main",
      script: "./main.js",
      env: {
        NODE_ENV: "development",
        // DB_HOST: "110.41.34.197",
        // DB_DATABASE: "admin_auth",
        // DB_USERNAME: "root",
        // DB_PASSWORD: "Cy,.01283138!!!!",
        // DB_PORT: "53306",
        // THIRD_PARTY_SERVICES: "dev",
      },
      env_sit: {
        NODE_ENV: "sit",
      },
      env_uat: {
        NODE_ENV: "uat",
      },
      env_production: {
        NODE_ENV: "production",
      },
      env_file: {
        development: "env/.env.development",
        sit: "env/.env.sit",
        uat: "env/.env.uat",
        production: "env/.env.production",
      },
    },
  ],
};

2、配置pm2.json文件

在开发完项目后,新建pm2.json文件到dist根目录

开启sit服务 pm2 start pm2.json --env sit

其他环境只需修改sit为不同环境即可

json 复制代码
{
  "apps": [
    {
      "name": "main",
      "script": "./main.js",
      "env": {
        "NODE_ENV": "development"
      },
      "env_sit": {
        "NODE_ENV": "sit"
      },
      "env_uat": {
        "NODE_ENV": "uat"
      },
      "env_production": {
        "NODE_ENV": "production"
      },
      "env_file": {
        "development": "env/.env.development",
        "sit": "env/.env.sit",
        "uat": "env/.env.uat",
        "production": "env/.env.production"
      }
    }
  ]
}

总结

如有启发,可点赞收藏哟~

相关推荐
一枚正在学习的小白3 分钟前
PG数据文件位置迁移
linux·运维·服务器·数据库
我科绝伦(Huanhuan Zhou)1 小时前
Systemctl 与 Systemd 全面指南:Linux 系统服务管理详解
linux·服务器·网络
gplitems1232 小时前
Petslist – Pet listing WordPress Theme Free Download
linux·服务器·前端
1白天的黑夜12 小时前
Linux (5)| 入门进阶:Linux 权限管理的基础规则与实践
linux·运维·服务器·centos
济南java开发,求内推2 小时前
mongodb一个服务器部署多个节点
服务器·数据库·mongodb
超龄超能程序猿2 小时前
Docker 镜像的导出和还原操作
运维·docker·容器
维尔切2 小时前
Docker 监控平台部署
运维·docker·容器·grafana·prometheus
温柔一只鬼.2 小时前
Docker快速入门——第三章Docker环境安装
运维·docker·容器
IT 小阿姨(数据库)3 小时前
PostgreSQL etcd 集群介绍
运维·数据库·sql·postgresql·centos·etcd
world-wide-wait3 小时前
python高级04——网络编程
linux·服务器·网络