2026/2/17 12:09:15
网站建设
项目流程
投资理财网站模板,郑州网站服务外包公司,蓝色大气企业网站源码,网站提交收录入口在使用 pkg 将 Node.js 项目打包成可执行文件时#xff0c;经常会遇到下面这些问题#xff1a;
❌ 打包过程中卡在 Downloading Node.js binary❌ 国内网络访问 GitHub / npm 镜像慢或失败❌ pkg-fetch 自动下载失败#xff0c;导致无法打包
其实 pkg 支持手动下载并放入缓存…在使用pkg将 Node.js 项目打包成可执行文件时经常会遇到下面这些问题❌ 打包过程中卡在Downloading Node.js binary❌ 国内网络访问 GitHub / npm 镜像慢或失败❌ pkg-fetch 自动下载失败导致无法打包其实pkg 支持手动下载并放入缓存目录本文将详细介绍Windows 和 macOS 下 pkg 的手动依赖解决方案。一、pkg 打包原理简述pkg 在打包时会自动下载对应版本的Node.js 运行时二进制文件并缓存到本地目录WindowsC:\Users\用户名\.pkg-cachemacOS / Linux~/.pkg-cache缓存文件命名格式示例fetched-v16.16.0-win-x64 fetched-v16.16.0-macos-x64 fetched-v16.16.0-linux-x64只要缓存存在pkg 不会再联网下载。二、pkg-fetch 官方下载地址pkg 使用的 Node 二进制由pkg-fetch提供官方 Release 地址https://github.com/vercel/pkg-fetch/releases⚠️ 国内访问较慢建议使用代理或提前下载三、Windowspkg 手动放置缓存Win x641️⃣ pkg 缓存目录C:\Users\Administrator\.pkg-cachepkg 当前常用缓存版本目录C:\Users\Administrator\.pkg-cache\v3.42️⃣ 查看已有缓存PSC:\Users\Administrator\.pkg-cache\v3.4ls示例输出目录: C:\Users\Administrator\.pkg-cache\v3.4 Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2023/8/27 15:15 34778624 fetched-v16.16.0-win-x64说明v3.4pkg-fetch 版本fetched-v16.16.0-win-x64Node v16.16.0 的 Windows 64 位运行时3️⃣ 手动下载 Node 二进制从 pkg-fetch Release 中下载对应文件例如node-v16.16.0-win-x64重命名为fetched-v16.16.0-win-x64然后放入目录C:\Users\Administrator\.pkg-cache\v3.4\4️⃣ Git for Windows 离线包补充如果 pkg 构建过程中依赖 Git可手动下载 Git 安装包https://cdn.npmmirror.com/binaries/git-for-windows/v2.24.0.6.windows.1/Git-2.24.0.6-64-bit.exe避免构建脚本中 Git 下载失败。四、macOSpkg 手动缓存配置1️⃣ pkg 缓存目录cd/Users/用户名/.pkg-cache/v3.42️⃣ 查看缓存内容tree示例输出. ├── fetched-v14.20.0-macos-x64.downloading ├── fetched-v16.16.0-linux-x64 ├── fetched-v16.16.0-macos-x64 ├── fetched-v16.16.0-macos-x64-signed ├── fetched-v16.16.0-win-x64 ├── fetched-v18.5.0-macos-x64 └── fetched-v18.5.0-macos-x64-signed 1 directory, 7 files说明文件名说明macos-x64macOS Intellinux-x64Linuxwin-x64Windows*-signedApple 官方签名版本.downloading未完成下载可删除3️⃣ 手动放置 macOS Node 二进制下载对应版本后mvnode-v18.5.0-macos-x64 fetched-v18.5.0-macos-x64放入~/.pkg-cache/v3.4/如果存在.downloading文件可直接删除。五、指定 Node 版本打包强烈推荐在 pkg 打包时显式指定 Node 版本避免自动下载其他版本pkg index.js --targets node16-win-x64 pkg index.js --targets node16-macos-x64 pkg index.js --targets node18-linux-x64这样 pkg 只会查找对应缓存文件。六、常见问题排查❓ pkg 仍然尝试下载检查文件名是否完全一致是否放在正确的v3.4目录Node 版本是否和--targets匹配❓ 如何查看 pkg-fetch 版本pkg --debug或查看缓存目录名如v3.4七、总结✅ pkg 支持完全离线打包✅ 手动缓存可解决 99% 网络问题✅ 推荐提前下载并统一管理.pkg-cache适合内网环境CI / Docker 构建国内网络不稳定环境