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

总结

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

相关推荐
Session_MY4 分钟前
Docker 配置镜像加速
运维·docker·容器
花千树-0102 小时前
Milvus - GPU 索引类型及其应用场景
运维·人工智能·aigc·embedding·ai编程·milvus
战国2 小时前
卫星授时服务器,单北斗授时服务器,北斗卫星时钟服务器
服务器·网络·测试工具·分类
Gauss松鼠会2 小时前
GaussDB的向量化处理技术
运维·数据库·database·gaussdb
学习向前冲2 小时前
ifconfig命令-网卡名
linux·服务器·网络
WiFiMing3 小时前
nginx的基本安装与服务器配置
linux·运维·centos
乖乖周周3 小时前
nfs服务器
运维·服务器
Coke.涛3 小时前
DNS服务部署
linux·运维·服务器
y0ungsheep4 小时前
CTF中的phar反序列化 [SWPU 2018]SimplePHP
运维·web安全·网络安全·php·代码规范
秃头佛爷5 小时前
linux命令总结
linux·运维·服务器