当前位置: 首页 > 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
http://www.dtcms.com/a/81496.html

相关文章:

  • 博客系统自动化测试报告
  • 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礼盒的最大甜蜜度
  • Linux中,常用的快捷键分类整理(欢迎补充噢)
  • 网络华为HCIA+HCIP IPv6
  • 深入解析文本词汇处理代码——如何用有限词表实现无限表达
  • mysql 磐维(opengauss)tidb误删数据之高级恢复
  • 文献阅读篇#2:YOLO改进类的文章如何高效进行文献阅读(对于初学者)
  • 纯vue手写流程组件
  • cursor无限续杯软件操作教程
  • HWHVV护网入门基础知识
  • 在图片上高亮标注区域
  • LeetCode两数之和