手动搭建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"
      }
    }
  ]
}

总结

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

相关推荐
李游Leo11 小时前
Node.js 多版本管理与 nvm/nvs 使用全流程(含国内镜像加速与常见坑)
node.js
小柯J桑_12 小时前
Linux:线程封装
linux·运维·c++
zwhSunday12 小时前
Linux驱动开发(1)概念、环境与代码框架
linux·运维·驱动开发
Q_Q196328847513 小时前
python+springboot+uniapp微信小程序题库系统 在线答题 题目分类 错题本管理 学习记录查询系统
spring boot·python·django·uni-app·node.js·php
恒创科技HK13 小时前
现在中国香港服务器速度怎么样?
运维·服务器
创业之路&下一个五年14 小时前
第一部分:服务器硬件配置
运维·服务器
优秀的老黄15 小时前
Docker部署RabbitMQ
linux·运维·docker·中间件·容器·centos·rabbitmq
Lin_Aries_042115 小时前
容器使用卷
linux·运维·docker·云原生·容器·eureka
Liang_GaRy15 小时前
心路历程-Linux的特殊权限
linux·运维·服务器