从 Nativefier 迁移到 Pake,先迁网址和设置
Nativefier 的仓库在 2023 年 9 月 29 日已归档,它的维护者也认为,多数人直接用浏览器自带的安装功能更合适。如果还是想要一个独立的应用,可以按网址和设置在 Pake 里重新做一份,当作新应用来对待,因为打包选项和登录状态都不会自动带过去。
先想清楚要不要迁
Nativefier 原仓库由所有者在 2023 年 9 月 29 日归档,现在是只读的,README 开头就写着 Nativefier 已无人维护。公告 issue 里讲了理由,Nativefier 是在浏览器还不能把网站装成应用的年代做的,作者说只是想给某个网站做个应用的话,应该强烈优先用浏览器的这个功能,因为浏览器会自己更新、自己拿到安全修复,要做一个自己分发的定制应用,作者建议直接用 Electron。当天有一位维护者回复说,他自己也是为了安全更新才用浏览器那几种方式。
安全更新才是检查旧应用的现实理由。Nativefier 用 Electron 包装页面,GitHub 上列出的最新版本 v52.0.0 更新到了 Electron 25.7,Electron 的发布时间线写明只支持最新的三个稳定大版本,而 2026 年 10 月 18 日查看时,GitHub 上列出的 Electron 最新版本是 v44.9.0,所以用 Nativefier 做出来的应用,跑的是一个远落后于受支持版本的 Chromium,Electron 的安全指南也要求始终使用最新的可用版本。即使只打开自己的页面,旧引擎也不会因此补上安全更新,登录敏感服务前应先更换仍在维护的客户端。
所以有三条合理的路,从浏览器里安装这个网站,在 Pake 里重做,或者自己基于 Electron 做。浏览器的做法见 Mac 指南和 Windows 指南,这篇讲 Pake。
会变的地方
Nativefier 用的是 Electron,Pake 用的是 Tauri 和平台自带的网页视图,macOS 上是 WKWebView,Windows 上是 WebView2,Linux 上是 WebKitGTK。Tauri 的网页视图说明解释了这些平台差异,Tauri 和 Electron讲了它们对套壳网站意味着什么。引擎不同可能改变网站的表现,但这并不能证明每个网站都会变快或更省内存。
有一处差别很容易漏掉。Nativefier 的文档写的是,它默认使用一个预设的 User Agent,假装成普通的 Google Chrome,这样有些网站就不会提示浏览器不受支持,而 Pake 默认的 User Agent 在 Mac 上是 Safari,在 Windows 上是 Chrome。如果旧应用在 Mac 上靠的是 Chrome 的身份,就到高级里设置 User Agent,先读一下 User Agent 的说明。
先记下旧应用的设置
记下起始网址、名称、窗口大小、图标,以及注入过的样式或脚本。手上还留着当初的 nativefier 命令的话,它是最好的记录,因为命令里的每个选项都能在下面找到对应的位置。Nativefier 自己有个 --upgrade 选项,可以从现有应用里提取选项,但它是在 Nativefier 内部升级,所以你还是停在 Electron 上。
先重做一个小版本
测试期间保留旧应用。桌面版里把网址粘贴到创建页,用一个临时的、不重名的名称。用 CLI 的话,先装好所需工具,再做一个基础版本:
pake https://example.com --name example-pake
打开后测试登录、导航、上传、下载,以及你最常用的页面。基础版本能用了再加自定义,这样脚本出错的时候,不会掩盖网站本身的兼容问题。
按行为对应设置
| Nativefier 选项 | Pake 桌面版 | Pake CLI |
|---|---|---|
--name | 应用名称 | --name |
--icon | 应用图标 | --icon |
--width、--height | 默认尺寸 | --width、--height |
--inject(CSS 或 JavaScript) | 高级 里的 注入 CSS、注入 JavaScript | --inject |
--internal-urls | 高级 里的 内部链接正则 | --internal-url-regex,整个域名用 --safe-domain |
--user-agent | 高级 里的 User Agent | --user-agent |
--always-on-top | 始终置顶 | --always-on-top |
--tray | 常驻后台 加 菜单栏图标(Mac)或 托盘图标(Windows) | --hide-on-close、--show-system-tray |
--single-instance | 创建 的选项里没有 | 默认行为,再次启动会切到已打开的窗口,--multi-instance 可以关掉它 |
具体的参数看 CLI 参数说明,不要把 Nativefier 的命令直接贴进 Pake,因为各系统上的默认值不同,比如常驻后台在 Mac 上默认开着,在 Windows 上默认关着。
Nativefier 有两个选项在 Pake 的文档里没有对应的东西。--widevine 会换成支持 Widevine 的 Electron 版本来播放 DRM 视频,Nativefier 自己的说明也提到有些网站仍然拒绝播放,需要另外签名,Pake 的文档里没有这样的开关,所以依赖 DRM 播放的网站,迁移之前要先测。--counter 会给 macOS 程序坞图标保留一个角标计数,用于标题里带 (3) 这类数字的页面,你是否依赖它也要确认一下。
确认账号后再迁
Pake 不会导入旧的 Electron 配置数据,需要重新登录,核对账号以及网站里管理的文档,确认没问题之前先保留旧应用。以后想在两台电脑之间只带设置的话,Pake 的 .pake 文件会保存名称、网址、窗口选项、User Agent、链接规则、CSS、JavaScript 和图标,从不包含登录状态,见把应用搬到另一台电脑。
Google 或其他服务拒绝内嵌登录的话,看登录排查,换一个套壳工具并不保证服务商会接受新的,Google 的政策针对的是内嵌用户代理这一类。
什么时候继续用旧的,什么时候换别的
旧的 Nativefier 应用还能用,只打开你信任的页面,又依赖 --widevine 或程序坞角标的话,可以再用一阵,但要计划替换,因为这个引擎不会再有修复。需要处处都是 Chromium、需要扩展或 Node 访问,Electron 本身就是 Nativefier 作者推荐的路。只是想给一个已经在用的网站一个图标,浏览器自带的安装最省事。
常见问题
我的 Nativefier 应用会停止工作吗
归档本身不会让已经装好的应用停止运行,但后续不会再有新版本和修复。
Pake 能导入我的 Nativefier 应用吗
不能。按网址和上面的设置重新做一份,登录状态和浏览器数据不会迁移。
Pake 版本会更小更快吗
这篇没法保证。引擎不同,行为也会不同,去量你自己做出来的那个应用,方法见 Tauri 和 Electron。
