当前位置: 首页 > news >正文

Nodejs 项目打包部署方式

方式一:PM2

一、准备工作

  • 确保服务器上已安装 Node.js 环境
  • 建议使用 PM2 进行进程管理(需要额外安装)

二、部署步骤

1.首先在服务器上安装 PM2(推荐):

   npm install -g pm2

2.将项目代码上传到服务器,可以使用 Git 克隆:

   git clone https://gitee.com/gaozm_git/nodejs-api.git
   cd nodejs-api

3.安装项目依赖:

   npm install

4.使用 PM2 启动项目:

   pm2 start server.js --name "seek-api"

三、环境变量配置

  • 确保在服务器上正确配置了 .env 文件
  • 包含所有必要的环境变量(如数据库连接、API密钥等)

四、常用 PM2 命令:

   # 查看运行状态
   pm2 status
   
   # 查看日志
   pm2 logs seek-api
   
   # 重启应用
   pm2 restart seek-api
   
   # 停止应用
   pm2 stop seek-api

这样就是运行成功了
在这里插入图片描述

方式二:pkg(目前支持nodejs版本是18的,18以上不支持)

一.首先安装 pkg

npm install -g pkg

二、在 package.json 中添加打包配置

{
  "bin": "server.js",
  "pkg": {
    "assets": [
      "node_modules/**/*",
      "routes/**/*",
      "config/**/*",
      "utils/**/*",
      "middleware/**/*"
    ],
    "targets": [
      "node18-win-x64",
      "node18-linux-x64",
      "node18-macos-x64"
    ]
  },
  "scripts": {
    "build": "pkg ."
  },
// ... existing code ...

在这里插入图片描述

三、现在您可以使用以下命令进行打包

npm run build

打包后会在项目根目录生成三个可执行文件:
seek-api-win.exe (Windows)
seek-api-linux (Linux)
seek-api-macos (macOS)

注意事项:

  1. 打包后的文件会比较大,因为它包含了 Node.js 运行时
  2. 某些原生模块可能需要特殊处理
  3. 环境变量和配置文件需要单独处理
  4. 建议在目标平台上进行打包

使用打包后的文件:

  1. 将生成的可执行文件复制到目标服务器
  2. 确保配置文件(如 .env)也复制到相应位置
  3. 直接运行可执行文件即可:
npm run build

相关文章:

  • 博客系统自动化测试报告
  • Java实现十大经典排序算法详解
  • firefly经典蓝牙和QProcess记录
  • MinIO
  • 使用 Apktool 反编译、修改和重新打包 APK
  • 1978-2022年全国及31省农业机械总动力数据(无缺失)
  • 开源ORB_SLAM2项目编译常见问题与应对办法
  • 分布式(一):CAPBASE理论
  • Excel(实战):INDEX函数和MATCH函数
  • QSettings修改配置后强制重启应用导致配置文件大小为0问题
  • 基于Azure Delta Lake与Databricks的医疗数据变更管理
  • 优选算法训练篇08--力扣15.三数之和(难度中等)
  • 第4章 IP网络扫描(网络安全评估)
  • 【科研杂记_10】国家行政区划可视化
  • [特殊字符][特殊字符][特殊字符][特殊字符][特殊字符][特殊字符]壁紙 流光染墨,碎影入梦
  • C++基础 [十二] - 继承与派生
  • SpringSecurity——前后端分离登录状态如何保持
  • 【Vitis AI】FPGA设备使用PyTorch 运行 ResNet18获得10000fps
  • 直接插入排序和折半插入排序
  • LeetCode 2517礼盒的最大甜蜜度
  • 泽连斯基已离开土耳其安卡拉
  • 辽宁盘山县一乡镇幼儿园四名老师被指多次殴打一女童,均被行拘
  • 青海省交通运输厅副厅长田明有接受审查调查
  • 4月企业新发放贷款利率处于历史低位
  • 中东睿评|特朗普中东三国行:喧嚣的形式与空洞的实质
  • 俄副外长:俄美两国将举行双边谈判