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

pm2 应用部署总结 pm2 应用部署总结 全流程 阅读详情


前言

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


一、什么是pm2?

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

  • pm2需要全局安装npm install -g pm2
  • 进入项目根目录
  • 启动进程/应用 pm2 start bin/www 或 pm2 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"
      }
    }
  ]
}


总结

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

Node系列------pm2管理项目1------pm2运行ts文件 PM2运行ts文件原理 需要先将 ts 文件编译成 js 文件,再用 pm2 运行编译后的 js 文件。因为 pm2 并不能完美兼容 ts-node ,会遇到各种问题。 目录结构 第一步:设置 tsconfig.json 配置文件 最重要的就是设置 rootDir【编译的根目录】 和 outDir【编译后的输出目录】 这两个配置项。 { "compilerOptions": { "target": "es5", # 编译后的js版本 "module": "commonjs", 阅读详情

相关推荐

《node+koa2+uniApp+mysql 项目搭建到部署 》[保姆级步骤四]

前端路上 | 所知甚少,唯善学。各位小伙伴有什么疑问,欢迎留言探讨。— 关注我:前端路上不迷路 —

学全栈、大前端方向,就找前端早间课 465

PM2 | NodeJS应用进程管理工具—PM2的基本使用

介绍一个生产级的流程管理工具 PM2,通常我们说到 PM2 的时候,都是在说如何部署 Node.js 程序,但是实际上 PM2 很强大,不仅仅可以用来管理 Node.js,它还可以用来管理 Python、PHP、Ruby、perl 等等。但是,在部署之前,我们还需要安装nodejs

青春木鱼的博客 3万+

三菱FX5U运动控制(步进)

三菱FX5U脉冲定位控制,原点回归,相对定位,绝对定位,运动控制案例。

weixin_55762091的博客 1万+

pm2配置文件部分参数解析

首先,在项目根目录新建一个pm2.json文件,然后在文件中写入:{ "apps": [ { "name": "mstore", "cwd": "/www/mstore", "script": "build/app.js", "log_date_format": "YYYY-MM-DD HH:mm Z",

itKingOne的博客 4547

2021年软件测试面试题大全

简述测试流程: 1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例(等价类划分法、边界值分析法等)。 5、用例评审(主要参与人员:开发、测试、产品、测试leader)。 6、开发提交代码至SVN或者GIT ,配管搭建测试环境。 7、执行测试用例,记录发现的问题。 8、验证bug与回归测试。 9、编写测试报告。 10、产品上线。 补充测试用例设计过程: 根据需求得出测试需求 设计测试方

hard_days的博客 20万+

Fast DDS源代码走读

DDS, PDP, EPD, DataWriter, DataReader

weixin_43082062的博客 713

pm2入坑详解

一、概述 1、pm2是什么? pm2是node进程管理工具。 2、为什么选它?与其他工具的对比 对比图 二、特性 1、后台运行 普通启动方式:node index.js,关闭终端就结束进程; pm2可以后台运行,终端关闭不影响。 2、自动重启 可以监听某些文件改动,自动重启 3、停止不稳定的进程 限制不稳定的重启的次数,达到上限就停止进程。 4、0 秒停机重启 集群模式下,可以达到重启时不停止服务。 5、简单日志管理 pm2可以收集日志,并有插件配合进行管理。后面会.

leonnew的博客 1万+

Codesys电子凸轮从入门到应用:手把手教你用MC_CamIn/MC_CamOut实现主从轴同步

本文详细介绍了如何在Codesys平台上使用MC_CamIn和MC_CamOut功能块实现电子凸轮的主从轴同步控制。从环境配置、轴使能到凸轮表创建与动态切换,提供了完整的程序编写指南和调试技巧,帮助工程师快速掌握工业自动化中的高精度运动控制技术。

weixin_26878995的博客 277

在本地环境上用pm2跑koa+ts项目

开始之前先了解一下什么是pm2,这次认认真真逐字逐句的读了下概念,之前大致知道这是一个管理node进程的工具,把它笼统的归类于与phpstydy、nginx类似的工具,但是其实并不完全一致。pm2一般来说是用于我们的生产环境,也就是云服务器上的node进程管理工具(废话),它不仅能进行进程守护,同时也支持性能监控、负载均衡等的功能,并且还可以使用命令来取查看我们node进程的状态,小白友好上手简单。

sinat_36253867的博客 546

ISO26262 功能安全各个阶段测试要求

1. 开发过程说明 系统层面:包括软硬件集成测试、系统集成测试以及整车测试。 硬件层面:包括硬件集成与测试。 软件层面:单元测试、集成测试。 2. 功能安全总体要求 2.1 各项指标 2.2 诊断覆盖度举例 针对一个信号举例说明: 3. 功能安全测试要求 3.1 测试计划 核心内容应包括, 测试对象:需要测试的对象描述,以及测试的范围描...

AgingMoon的博客 1万+

2025_NIPS_RAGRouter: Learning to Route Queries to Multiple Retrieval-Augmented Language Models

该研究聚焦检索增强生成(RAG)场景下的大语言模型(LLM)路由问题,提出了首个RAG感知的路由框架RAGRouter。核心解决现有路由方法依赖静态参数知识、忽略检索文档动态影响的缺陷,通过融合文档嵌入、RAG能力嵌入与对比学习,捕捉RAG引发的模型知识表征变化,为每个查询-文档对选择最优LLM。实验覆盖5个知识密集型任务、15个开源/闭源LLM,验证了RAGRouter在性能上超越最佳单LLM和非RAG感知路由方法,且通过阈值机制实现低延迟约束下的性能-效率平衡。

UnknownBody_2的博客 273

Vue 3 + Koa2 + MySQL 开发和上线部署个人网站

记录个人的一个操作步骤, 顺序不分先后, 嫌啰嗦请出门右转!环境说明:服务器: 阿里云轻量应用服务器服务器系统: CentOS8.2本地环境: macOS 12.7.2Koa: 2.7.0pm2: 5.3.1。

Leo_DLi的博客 1916

详细介绍用MATLAB实现基于A*算法的路径规划(附完整的代码,代码逐行进行解释)(一)--------A*算法简介和环境的创建

   本系列文章主要介绍基于A*算法的路径规划的实现,并使用MATLAB进行仿真演示。    一、 A*算法简介       A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。      公式表示为: f(n)=g(n)+h(n),其中, f(n) 是从初始状态经由状态n到目标状态的代价估计,g(n) 是在状态空间中从初始状态到状态n的实际代价,h(n) 是从状态n到目标状态的最佳路径的估计代价。

慕羽★的博客 7万+

详细koa2+ts+prisma+swagger的后端项目部署(部署到宝塔面板)

利用koa2+ts+prisma+swagger的完成的后端项目,在本地成功运行后部署到云服务器,选择了宝塔面板

qq_42820307的博客 1257

【全志V821_FoxPi】6-3 GC2083 MIPI摄像头适配

本文介绍了在全志V821芯片上适配GC2083 MIPI摄像头的方案。GC2083是一款支持1080P@30fps的高性能CMOS图像传感器,采用MIPI CSI-2接口,具有低功耗特性。文章详细列出了传感器的技术参数和工作电压要求,并提供了设备树配置示例,包括CSI接口、ISP处理单元和传感器节点的具体设置。通过快速配置命令one_gc2083_sensor或手动修改设备树即可启用该摄像头模组,适用于IPC等对图像质量有要求的嵌入式应用场景。

第四维度的博客 1928

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

koa2+ts+sqlite3+apidoc的起手式项目

基于koa2做了相关开发常用的插件整合,适用于做项目的起手式框架搭建

chen_p_cheng的博客 685

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OpenMTP macOS Android 文件传输完整指南:免费开源,4GB 大文件直传

OpenMTP 是一款免费的 macOS Android 文件传输工具,基于 MTP 协议(媒体传输协议)通过 USB 在 Mac 和安卓手机之间双向搬文件,开源且本地运行。照片视频每天要往电脑倒、官方 Android File Transfer 又传不了 4GB 以上文件的人,值得花几分钟把它装上。 ## 🧭 macOS Android 文件传输工具 OpenMTP 是什么 OpenMTP

gitblog_01055的博客 813

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

深入 Scenario Kinetic Music Video 引擎 API:three.js + Canvas2D 确定性合成与逐帧渲染实战

本文以 `skills/scenario-kinetic-music-video/references/engine_api.md` 为骨架,系统讲解该 Skill 内置的 three.js + Canvas2D 合成器:每一个像素都是全局歌曲时间 `t` 的纯函数,`render.mjs` / `still.mjs` 在 headless Chrome 中调用 `window.renderFra

gitblog_01126的博客 860

Dolphin RVZ 转换实战:块大小 131072 + Zstd 5 级的完整方案

游戏库里的 ISO 动辄几个 GB,硬盘装满了,游戏还没玩完几成。用 Dolphin 的 RVZ 格式重新打包后,实测文件体积缩小 51.1%(4.7GB 降到 2.3GB),首次加载从 12.4 秒降到 3.8 秒,接近砍掉七成。本文把转换命令、参数取舍到排错的完整流程过一遍。 ## RVZ 转换命令:dolphin-tool 一条命令把 ISO 转成 RVZ 拿到 Dolphin 随附的命

gitblog_00516的博客 247

3 步在 Windows 上安装 Android 应用:APK Installer 使用指南

想在电脑上用手机上那个应用,下载了 APK 往资源管理器里一拖,Windows 却只弹出"无法打开此文件"。APK Installer 就是一个开源的 Windows 桌面工具,它借助系统自带的 Android 子系统(WSA),让 .apk 文件能像普通 Windows 应用一样被安装、启动和更新。 ## 项目定位:不做模拟器的 Android 安装器 APK Installer 本身是个

gitblog_00496的博客 475

koa开发实践1:基于 gulp 搭建 typescript 自动构建环境

我们这一节的目标是同过gulp于相关工具构建一个基于 TypeScript 的 koa 项目开发环境,并且希望这个环境能够自动的监听 TypeScritp 源代码的变化,在发生源代码改变时执行自动编译为用于 NodeJS 的 JavaScript 代码,并启动服务。本文带大家搭建了一个全自动化编译、运行 由 TypeScript 编写的 koa 服务器,它能够自动的清理 旧有的编译项目,监视 TypeScript 源代码变化,自动编译为 JavaScript 并在编译完成后 自动地启动服务器。

jclee95的个人博客 930

从 Metabase 迁移到 DAC:dac import 一键转换看板与语义模型

如果你正在寻找 **Metabase 到 DAC 的迁移方案**,那么 `dac import` 就是为你准备的:DAC 是一款 Dashboard-as-Code(看板即代码)工具,可以通过一条命令把 Metabase 仪表板一键转换为可版本管理的 DAC YAML 看板文件,还能用 `--semantic` 标志把 Metabase 的模型与指标同步转换为 DAC 语义模型,让看板定义、审查和

gitblog_00289的博客 645

Midway 应用启动与部署实战:本地开发、传统服务器、Serverless 与 Docker 全流程指南

本篇技术指南以 Midway(`@midwayjs/*` 系列)的官方 2.x 版本文档为核心,系统讲解一个 TypeScript 编写的 Midway 应用从本地开发启动,到编译构建、传统服务器进程管理(pm2 / egg-scripts)、Serverless 云平台发布,再到 Docker 镜像化与 Docker-Compose 编排的完整部署链路。读完本文,你将掌握 `midway-bin

gitblog_00019的博客 430

Midway 3 应用启动与部署全攻略:本地 dev、服务器、Docker、单文件与二进制多形态交付

本篇以 Midway 3(Node.js Serverless 框架)为背景,系统讲解应用从本地开发到生产部署的完整链路:本地 `dev` 启动的两种方式与入口差异、服务器部署时构建产物与运行环境的区别、基于 pm2 的进程启动、Bootstrap 启动参数、Docker 多阶段镜像构建与 docker-compose 编排,以及面向 Serverless/私有化场景的单文件构建(ncc)与二进制

gitblog_00778的博客 1000

Audacity au3→au4 翻译迁移脚本实操手册

Audacity 把国际化工具链从 au3 的 gettext(.po)栈切到 au4 的 Qt 原生 .ts/.qm 栈,`tools/translations/au3-au4-migration/` 下的一组一次性脚本完成这次翻译迁移:宏改写、PO 导入 .ts、残量兜底。面向需要复现此迁移或维护语言包的贡献者。 ## 快速定位 | 维度 | 说明 | |---|---| | 解决什么 |

gitblog_00198的博客 782

Fiora 安装部署完全指南:Node.js + MongoDB + Redis 环境搭建、PM2 守护与 Docker 容器化运行

本文面向希望从零搭建并运行 Fiora 的开发者,完整覆盖环境准备、源码安装、后台守护、开发模式与 Docker 容器化四种部署路径,并深入解读仓库内部的启动流程、构建脚本与配置解析,帮助你在 Linux 或 macOS 上快速得到一个可对外提供服务的开源聊天应用。读完本文,你将掌握 Fiora 的全部标准启动方式,并能够按需选择 JwtSecret、端口、数据库地址等关键配置。 [![Fior

gitblog_00166的博客 177
上一篇: 手动搭建koa+ts项目框架(node开发配置环境变量)
下一篇: js动态修改样式(:root)
失眠时间
博客等级 码龄7年 9134粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值