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

总结

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

相关推荐
jiayong232 小时前
DevOps体系详解01-核心概念与价值
运维·devops
jiayong232 小时前
DevOps体系详解02-技术架构与工具链
运维·架构·devops
pride.li3 小时前
开发板和Linux--nfs服务挂载
linux·运维·服务器
looking_for__3 小时前
【Linux】应用层协议
linux·服务器·网络
云泽8084 小时前
不止是命令:Linux 高频指令实战 + 芯片架构底层逻辑
linux·运维·服务器
j_xxx404_4 小时前
Linux:基础IO
linux·运维·服务器
angushine6 小时前
银河麒麟V10创建用户
运维
Trouvaille ~6 小时前
【Linux】网络编程基础(二):数据封装与网络传输流程
linux·运维·服务器·网络·c++·tcp/ip·通信
久绊A7 小时前
春节前云平台运维深度巡检-实操经验
运维·安全·容器·kubernetes·云平台
万邦科技Lafite7 小时前
一键获取京东商品评论信息,item_reviewAPI接口指南
java·服务器·数据库·开放api·淘宝开放平台·京东开放平台