资讯动态

如何打包分发NW.js应用:从package.nw到Windows/Linux/Mac安装包全流程

发布时间:2026/9/3 10:24:49 来源:尧图企业网站定制
如何打包分发NW.js应用从package.nw到Windows/Linux/Mac安装包全流程【免费下载链接】nw.jsCall all Node.js modules directly from DOM/WebWorker and enable a new way of writing applications with all Web technologies.项目地址: https://gitcode.com/gh_mirrors/nw/nw.js打包分发 NW.js 应用就是把你的应用代码、资源文件和 NW.js 运行时组合成package.nwMac 上叫app.nw再为 Windows、Linux、Mac 分别生成可直接运行的目录或安装包。NW.js 让你可以直接从 DOM/WebWorker 中调用所有 Node.js 模块用 Web 技术写出全新的桌面应用——而打包分发正是把这些应用交付给用户的关键一步。本文带你走完从准备应用到生成三大平台安装包的全流程。一、NW.js 打包分发全流程概览整个流程可以归纳为 5 个步骤官方文档 docs/For Users/Package and Distribute.md 对此有完整说明步骤内容关键点1. 准备应用源码、资源、依赖装齐每个目标平台都要重新npm install2. 准备运行时选择合适的 build flavorSDK 版含 DevToolsNormal 版体积最小3. 打包应用生成package.nw/app.nw普通文件或 zip 两种方式4. 平台适配图标、.desktop、签名Windows / Linux / Mac 各不相同5. 制作安装包NSIS、Inno Setup、makeself 等让最终用户一键安装官方还推荐了自动化工具 nw-builder可以一键完成上述打包过程如果偏好手动操作按下面的步骤来即可。二、打包前准备一份必查的清单打包前请逐项确认避免在我机器上能跑、用户机器上就崩源代码和资源文件齐全已执行npm install安装依赖原生 Node 模块已在目标平台重新编译见 docs/For Users/Advanced/Use Native Node Modules.mdNaCl 二进制文件已构建如需要见 docs/For Users/Advanced/Use NaCl in NW.js.md源码已编译保护、原文件已移除可选见 docs/For Users/Advanced/Protect JavaScript Source Code.mdmanifest 中声明的应用图标文件存在三个新手最容易踩的坑依赖不能跨平台通吃node_modules是为某个平台装的不代表在所有平台都能用。经验法则是在每个目标平台上都执行一次npm install。Linux/Mac 区分大小写test.js和Test.js是两个文件路径大小写写错在 Linux 上会直接崩给你看。Windows 路径超 260 字符老版本 NPM3.0下npm install容易触发路径过长错误建议把项目放在C:\build\这类浅目录中构建。此外你的应用必须包含一个 package.json 清单文件至少要有main入口文件和name应用唯一名两个字段完整字段含义可查阅 docs/References/Manifest Format.md。三、选择 NW.js 运行时SDK 版还是 Normal 版你的应用必须随附 NW.js 运行时才能运行。NW.js 提供多种 build flavors 来平衡体积与能力SDK flavor内置 DevTools 与 NaCl 插件支持能力最完整适合开发调试Normal flavor去掉 DevTools 和 NaCl 的最小构建体积最小适合正式发布。 小提示代码里可以用process.versions[nw-flavor]检查当前运行的是哪种 flavor。下载的官方包中所有文件都应随产品重新分发唯一例外是 SDK 版 tools 目录里的nwjc、payload、chromedriver——这些是开发工具不需要发给用户。四、打包你的应用生成 package.nw 的两种方式方式 1普通文件官方推荐不压缩直接把应用文件和运行时放在一起启动最快Windows / Linux应用文件与nw或nw.exe放同一目录确保package.json与nw同级或者把应用文件放进名为package.nw的文件夹再与nw/nw.exe放一起。Mac把应用文件放进nwjs.app/Contents/Resources/app.nw文件夹即可。方式 2Zip 压缩为 package.nw把所有应用文件压缩成 zip 并改名为package.nw与 Windows/Linux 运行时放在一起Mac 上则命名为app.nw放入nwjs.app/Contents/Resources/。⚠️注意启动时 NW.js 会把 zip 包解压到临时目录再加载包越大、文件越多启动越慢。Windows 和 Linux 上还可以把 zip 直接藏进可执行文件末尾得到一个单文件应用copy /b nw.exepackage.nw app.execat nw package.nw app chmod x app五、各平台安装与定制步骤5.1 Windows换图标 制作安装包Windows 下主要做两件事替换 nw.exe 图标可用 Resource Hacker 等工具修改可执行文件的资源。制作安装程序把运行时、package.nw、图标等所有必要文件部署到用户系统可选 Windows Installer、NSIS 或 Inno Setup 等主流方案。5.2 Linux创建 .desktop 文件 自解压安装包为你的应用创建规范的.desktop文件让应用能出现在桌面和启动器中制作自解压安装包可用shar、makeself这类脚本方案用户双击脚本即可解压出整个应用更正规的做法是按apt、yum、pacman等包管理系统的官方文档打成系统包分发。5.3 Macapp.nw、图标与签名Mac 上的定制点最多需要修改以下内容文件作用Contents/Resources/nw.icns应用图标可参考源码 src/mac/nw.icns 的位置约定Contents/Info.plistApple 包描述文件修改显示名、bundle id 等Contents/MacOS/nwjs若改了可执行文件名需同步重命名package.json的product_string让 Helper 进程显示为你的产品名 Helper完整改名步骤含 Helper 子应用目录重命名见 docs/For Users/Package and Distribute.md 的 Mac 章节。重要Mac 应用必须签名否则在 Gatekeeper 开启的机器上用户根本无法启动应用。上架 Mac App Store 的细节见 docs/For Users/Advanced/Support for Mac App Store.md。六、常见打包问题 FAQQ1zip 版 package.nw 为什么启动慢NW.js 启动时会将 zip 解压到临时目录再加载。包大或文件多时解压耗时明显发布给终端用户时优先用普通文件方式。Q2Linux 上应用打不开日志提示找不到文件大概率是路径大小写不匹配。Linux 文件系统区分大小写检查package.json中的main及所有引用路径。Q3Windows 下npm install报路径过长把项目构建目录放到根目录下如C:\build\并升级 NPM 到 3.0 以上。Q4想保护 JS 源码怎么办打包前用 SDK 版中的nwjc把源码编译为字节码再移除原始 JS 文件方法见 docs/For Users/Advanced/Protect JavaScript Source Code.md。Q5怎么确认用户装的是哪种运行时在应用代码里读取process.versions[nw-flavor]SDK 版和 Normal 版一目了然。七、参考资料与源码索引打包分发完整指南docs/For Users/Package and Distribute.md构建 NW.js 运行时含 build flavors 源码构建docs/For Developers/Building NW.js.mdmanifest 字段详解docs/References/Manifest Format.md窗口相关 API打包后常用nw.Windowdocs/References/Window.md打包资源与清单示例src/mac/app-Info.plist、src/mac/nw.icns按准备应用 → 选运行时 → 生成 package.nw → 平台定制 → 做安装包这条主线走完你的 NW.js 应用就能在三大平台上顺利交付给用户了。【免费下载链接】nw.jsCall all Node.js modules directly from DOM/WebWorker and enable a new way of writing applications with all Web technologies.项目地址: https://gitcode.com/gh_mirrors/nw/nw.js创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价