pkg打包nodejs
时间: 2025-05-29 12:37:26 浏览: 22
### 使用 `pkg` 工具打包 Node.js 应用程序
#### 全局安装 `pkg`
为了使用 `pkg` 来打包 Node.js 应用程序,首先需要将其作为全局工具安装。可以通过以下命令完成安装:
```bash
npm install -g pkg
```
这一步确保了可以在任何项目目录下调用 `pkg` 命令[^1]。
#### 创建示例应用程序
假设有一个简单的 Node.js 应用程序,例如一个基于 Express 的 Web 服务器。以下是该应用程序的核心代码片段:
```javascript
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Express web app on localhost:3000');
});
```
此代码定义了一个基本的 HTTP 服务,在访问根路径 `/` 时返回字符串 `'Hello World!'`[^3]。
#### 配置 `package.json`
为了让 `pkg` 正确识别并打包应用程序及其依赖项,建议在项目的 `package.json` 文件中添加特定配置字段。例如:
```json
{
"name": "example-app",
"version": "1.0.0",
"main": "server.js",
"bin": "server.js",
"pkg": {
"assets": ["public/**/*"],
"outputPath": "executables",
"targets": [
"node18-linux-x64",
"node18-macos-x64",
"node18-win-x64"
]
}
}
```
在此配置中:
- `"main"` 字段指定了入口文件。
- `"pkg.assets"` 列出了需要包含的静态资源(如果有的话)。
- `"pkg.targets"` 定义了目标平台和架构列表[^4]。
#### 执行打包操作
通过运行以下命令启动打包过程:
```bash
pkg .
```
默认情况下,`pkg` 将读取当前工作目录中的 `package.json` 并按照指定的目标生成多个可执行文件。这些文件会被放置在 `outputPath` 指定的子目录中(如本例中的 `./executables/`)。对于每种目标平台,都会生成对应的二进制文件[^2]。
#### 跨平台分发
一旦成功创建了可执行文件,它们便能够在对应的操作系统上独立运行,而无需预先安装 Node.js 或其他依赖环境。例如:
- 对于 Windows 用户,可以直接双击 `.exe` 文件;
- Linux 和 macOS 用户则可能需要赋予脚本执行权限后再手动运行。
---
### 注意事项
尽管 `pkg` 提供了一种便捷的方式将 Node.js 应用转换成原生可执行形式,但在实际开发过程中仍需注意一些潜在问题,比如大尺寸的最终产物、敏感数据硬编码风险等。
阅读全文
相关推荐















