node 打包工具
node 打包工具
痛点:源代码暴露在服务器上,如果服务器被入侵,源代码可能泄露
解决方案—打包工具
1.pkg
- 特点:简单易用,支持将 Node.js 应用打包为 Windows、Linux、macOS 平台的可执行文件,无需安装 Node.js 即可运行。
使用教程
- 安装:
npm install -g pkg - 打包:
1 | # 打包当前平台(根据运行命令的系统自动识别) |
注意:pkg 默认只会打包你的源码和相关依赖,node_modules 中的依赖默认不会被自动包含,尤其是需要动态加载的模块。如果需要包含依赖,可以使用 --include 参数指定依赖文件。
2. nexe
- 特点:与 pkg 类似,但更灵活,支持自定义 Node.js 版本和编译选项,适合需要深度定制的场景
- 安装:
npm install -g nexe - 打包:
1 | # 打包当前平台 |
高级配置(通过 nexe.config.json):
1 | { |
1-2 都需要借助github
3. electron-packager
- 特点:专为 Electron 应用设计,可将前端 + Node.js 混合应用打包为桌面程序,支持多平台。
- 安装:
npm install -g electron-packager - 使用教程:
- 假设已有一个 Electron 项目(目录结构如下):
1 | my-electron-app/ |
- 打包命令:
1 | # 打包当前平台(名称、版本从 package.json 读取) |
- 打包后在 dist 目录生成对应平台的应用文件夹,可直接运行。
4. webpack + @vercel/ncc
特点:适合将 Node.js 应用打包为单个 JS 文件(非可执行文件),便于部署到服务器(需 Node.js 环境)。
- 合并所有依赖到单个文件
- 支持 ES 模块和 CommonJS
- 自动处理 JSON、CSS 等资源
- 移除未使用的代码(Tree-shaking)
安装:·
npm install -g @vercel/ncc使用教程:
- 对单个文件打包:
1 | ncc build index.js -o dist |
输出目录 dist 中会生成 index.js(合并所有依赖的单个文件)。
- 运行打包后的文件:
1 | node dist/index.js |
- 对多个文件打包:
1 | ncc build src/index.js src/utils.js -o dist |
输出目录 dist 中会生成 index.js 和 utils.js(合并所有依赖的单个文件)。
灵活配置方式
ncc 允许通过两种方式扩展配置:
- 命令行参数(简单配置)
1 | # 指定入口文件和输出目录 |
- 自定义 Webpack 配置文件(复杂配置)
- 在项目根目录创建 ncc.config.js:
1 | module.exports = { |
- 安装依赖
如果使用了自定义 loader 或插件,需要安装对应的依赖:
1 | npm install csv-loader webpack --save-dev |
- 打包
1 | ncc build src/index.js |
- 结合 package.json 脚本
1 | { |
选择建议
- 简单场景(纯 Node.js 脚本):优先用 pkg 或 nexe。
- 桌面应用(带 UI):用 electron-packager。
- 服务器部署(需保留 Node.js 依赖):用 webpack + ncc。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 怪咖`Blog!
评论
WalineTwikoo




