Nodejs项目打包部署两种方式总结

 更新时间:2025年06月03日 10:46:59   作者:小周同学:  
这篇文章主要介绍了Nodejs项目打包部署两种方式的相关资料,两种方式分别是使用PM2和pkg,文中通过代码介绍的非常详细,需要的朋友可以参考下

方式一: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)

注意事项:

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

使用打包后的文件:

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

总结 

到此这篇关于Nodejs项目打包部署两种方式总结的文章就介绍到这了,更多相关Nodejs项目打包部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 轻松创建nodejs服务器(10):处理POST请求

    轻松创建nodejs服务器(10):处理POST请求

    这篇文章主要介绍了轻松创建nodejs服务器(10):处理POST请求,本文告诉你如何实现在node.js中处理POST请求,需要的朋友可以参考下
    2014-12-12
  • VSCode通过Ctrl+P快速打开node_modules中的文件的操作方法

    VSCode通过Ctrl+P快速打开node_modules中的文件的操作方法

    由于node_modules目录包含的文件太多,在VSCode中默认情况下是禁止搜索node_modules目录的,在这种情况下,我们将不得不依次展开node_modules的文件目录树,来查找我们所需要的文件,接下来介绍VSCode如何通过Ctrl+P快速打开node_modules中的文件,需要的朋友可以参考下
    2023-07-07
  • nodejs高大上的部署方式(PM2)

    nodejs高大上的部署方式(PM2)

    这篇文章主要介绍了nodejs高大上的部署方式(PM2) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 如何将Node.js中的回调转换为Promise

    如何将Node.js中的回调转换为Promise

    这篇文章主要给大家介绍了关于如何将Node.js中的回调转换为Promise的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • node Buffer缓存区常见操作示例

    node Buffer缓存区常见操作示例

    这篇文章主要介绍了node Buffer缓存区常见操作,涉及node.js操作Buffer缓存的创建、写入、读取、转换等相关实现技巧,需要的朋友可以参考下
    2019-05-05
  • Node.js模块化的使用详细介绍

    Node.js模块化的使用详细介绍

    nodejs中的模块化是指将每个js文件会被认为单独一个的模块。模块之间是互相不可见的。如果一个模块需要使用另一个模块,那么需要通过指定语法来引入要使用的模块,而且只能使用引入模块所暴露的内容
    2022-08-08
  • node 可读流与可写流的运用详解

    node 可读流与可写流的运用详解

    这篇文章主要为大家介绍了node 可读流与可写流的运用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • 使用upstart把nodejs应用封装为系统服务实例

    使用upstart把nodejs应用封装为系统服务实例

    这篇文章主要介绍了使用upstart把nodejs应用封装为系统服务实例,需要的朋友可以参考下
    2014-06-06
  • Node.js中防止错误导致的进程阻塞的方法

    Node.js中防止错误导致的进程阻塞的方法

    这篇文章主要介绍了Node.js中防止错误导致的进程阻塞的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08
  • 深入理解Puppeteer的入门教程和实践

    深入理解Puppeteer的入门教程和实践

    这篇文章主要介绍了深入理解Puppeteer的入门教程和实践,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03

最新评论