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

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

时间:2024-11-01 17:20:52浏览次数:6  
标签:pm2 sit koa ts js production env 进程

文章目录


前言

接着手动搭建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为不同环境即可

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为不同环境即可

{
  "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"
      }
    }
  ]
}


总结

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

标签:pm2,sit,koa,ts,js,production,env,进程
From: https://blog.csdn.net/weiCong_Ling/article/details/143406184

相关文章

  • 学习笔记(二十):ArkTS语言-函数
    一、函数声明包含其名称、参数列表、返回类型和函数体functiongetName(defaultName:string):string{returndefaultName==='Alice'?defaultName:"Tom"} 二、可选参数格式可为name?:TypefunctiongetName(defaultName?:string):string{returndefaultName==null......
  • Adobe After Effects各版本安装包下载与安装
    1、安装包  我用夸克网盘分享了AfterEffects2024:链接:https://pan.quark.cn/s/fac88adbac44提取码:9ZMWAfterEffects2023:链接:https://pan.quark.cn/s/d41a0a447b93提取码:4pwMAfterEffects2022:链接:https://pan.quark.cn/s/0070a59da58d提取码:Eij1AfterEffect......
  • 学习笔记(十九):ArkTS语言基本知识
    一、声明变量letname:string="";name="Alice"如果一个变量或常量的声明包含了初始值,那么开发者就不需要显式指定其类型。ArkTS规范中列举了所有允许自动推断类型的场景。letname="Alice";二、声明常量constname:string="Alice";三、Union类型类型联合类......
  • 在使用echarts绘制图表时, 如果需要使用渐变色, 则应使用echarts内置的渐变色生成器ec
    series:[{name:'',type:'bar',barMaxWidth:20,label:{show:true,color:'#fff',},showBackground:true,backgroundStyle:{color:'#d5f1f9&......
  • ROLL: Long-Term Robust LiDAR-based Localization With Temporary Mapping in Changi
    开源代码:GitHub-HaisenbergPeng/ROLL:Areal-time,robustLiDAR-inertiallocalizationsystemROLL:Long-TermRobustLiDAR-basedLocalizationWithTemporaryMappinginChangingEnvironmentsROLL:基于LiDAR的长期稳健定位,在不断变化的环境中提供临时测绘摘要:长......
  • AI大模型高效开发神器来了 ,解读ModelArts 8大能力
    随着国资委、工信部等持续推动工业企业开展人工智能创新应用,以及AI大模型为代表的新一代AI技术在快速发展,赋能各行各业,开展AI的创新应用对领先的工业企业已经是必答题。,在IDC《中国工业AI综合解决方案2024年厂商评估》中,华为在战略、能力、市场份额三个维度取得第一,位于领导者类别......
  • ubuntu 24.04 部署 mysql 8.4.3 LTS
    安装依赖apt-yinstalllibaio1t64ln-sv/usr/lib/x86_64-linux-gnu/libaio.so.1t64.0.2/usr/lib/x86_64-linux-gnu/libaio.so.1创建用户groupadd-g28-o-rmysql&&useradd-M-N-gmysql-o-r-d/data/mysql-s/bin/false-c"MySQLServer"-u28......
  • TSP问题-分支限界法求解
    此为课题组所指导本科生和低年级硕士生学习组合优化问题汇报所用教材:北京大学屈婉玲教授《算法设计与分析》课程资料:https://www.icourse163.org/course/PKU-1002525003承诺不用于任何商业用途,仅用于学术交流和分享更多内容请关注许志伟课题组官方中文主页:https://JaywayXu.g......
  • 如何使用WebSockets在网页应用中实现实时通信
    摘要:实现网页应用中的实时通信,1、选择合适的WebSockets库以简化实施过程;2、在服务器端与客户端建立WebSocket连接;3、设计有效的消息协议;4、确保通信安全性;5、处理网络问题和重连机制。其中选择合适的WebSockets库是基础。它能够帮助开发者快速构建实时通信功能,如Socket.IO、Web......
  • Asp.net 使用FluentScheduler
     1.安装包:Install-PackageFluentScheduler2.  Global.asax添加JobManager.Initialize(newMyRegister());3.添加类 publicclassMyRegister:Registry{publicMyRegister(){//ScheduleanIJobtorunataninte......