2.7 萬 Star!這個(gè)開源工具把網(wǎng)頁變成本地應(yīng)用程序
簡介
Nativefier 是一個(gè)命令行工具,可以以最少的配置輕松地為任何網(wǎng)站創(chuàng)建桌面應(yīng)用程序,把 Web 頁面變成本地應(yīng)用的命令行工具。通過 Electron + Chromium 把網(wǎng)站包裝成本地 .app、.exe 等可執(zhí)行文件,支持運(yùn)行在 Windows、macOS 和 Linux 操作系統(tǒng)上。
例如,為 WhatsApp Web 制作可執(zhí)行文件,只需要運(yùn)行以下命令:
- nativefier 'web.whatsapp.com'
 
項(xiàng)目地址是:
https://github.com/nativefier/nativefier
安裝
- macOS 10.9 + Windows + Linux
 - Node.js >= 12.9 并且 npm >= 6.9
 - 可選依賴
 
使用 ImageMagick 或 GraphicsMagick來轉(zhuǎn)換圖標(biāo)。確保 convert 和 identify 或 gm 在系統(tǒng)路徑 $PATH 中。
Wine 在非 Windows 平臺(tái)下打包 Windows 應(yīng)用程序。確保wine在系統(tǒng)路徑 $PATH 中。
然后,使用全局安裝 Nativefier:
- npm install -g nativefier
 
用法
要為 medium.com 創(chuàng)建本機(jī)桌面應(yīng)用程序,只需執(zhí)行以下命令:
- nativefier "medium.com"
 
Nativefier 將默認(rèn)設(shè)置應(yīng)用程序名稱以及許多其他選項(xiàng)。用戶也可以覆蓋這些選項(xiàng)。例如,要覆蓋名稱:
- nativefier --name 'My Medium App' 'medium.com'
 
常見的命令行選項(xiàng)有以下這些:
- -h, --help 打印使用信息
 - -v, --version 打印 nativefier 版本
 - -a, --arch <value> 構(gòu)建時(shí)的目標(biāo)處理器架構(gòu),ia32, x64, armv7l, arm64
 - -c, --conceal 指定本地化應(yīng)用程序中的源代碼是否一并打包,默認(rèn)為 false
 - -e, --electron-version <value> 指定 Electron 版本
 - -i, --icon <path> 指定應(yīng)用程序圖標(biāo)
 - 為 Windows 打包時(shí),必須是 .ico 文件的路徑。
 - 為 Linux 打包時(shí),必須是 .png 文件的路徑。
 - 為 macOS 打包時(shí),如果安裝了可選的依賴項(xiàng),則必須是一個(gè) .icns 或一個(gè) .png 文件。如果有圖像轉(zhuǎn)換工具(iconutil,或 ImageMagick 的 conver + identify,或 GraphicsMagick 的 gm),Nativefier 將把 .png 自動(dòng)轉(zhuǎn)換為 .icns
 - -n, --name <value> 應(yīng)用程序的名稱,Linux 上使用時(shí)不要包含空格
 - --no-overwrite 指定目標(biāo)目錄是否不應(yīng)被覆蓋,默認(rèn)為 false
 - -p, --platform <value> 執(zhí)行平臺(tái)。默認(rèn)為當(dāng)前操作系統(tǒng),也可以指定為 linux,windows,osx或mas
 - --portable 使應(yīng)用程序?qū)⒂脩魯?shù)據(jù)(cookie、緩存等)存儲(chǔ)在應(yīng)用程序文件夾中
 - --always-on-top 應(yīng)用程序啟動(dòng)時(shí)保持在屏幕最上層
 - --background-color <string> 指定背景顏色,https://www.electronjs.org/docs/api/browser-window#setting-backgroundcolor
 - --bookmarks-menu <string> 定義書簽菜單的 JSON 文件的路徑,如:
 - {
 - "menuLabel": "&Music",
 - "bookmarks": [
 - {
 - "title": "lofi.cafe",
 - "url": "https://lofi.cafe/",
 - "type": "link",
 - "shortcut": "CmdOrCtrl+1"
 - },
 - {
 - "title": "beats to relax/study to",
 - "url": "https://www.youtube.com/watch?v=5qap5aO4i9A",
 - "type": "link",
 - "shortcut": "CmdOrCtrl+2"
 - },
 - {
 - "type": "separator"
 - },
 - {
 - "title": "RÜFÜS DU SOL Live from Joshua Tree",
 - "type": "link",
 - "url": "https://www.youtube.com/watch?v=Zy4KtD98S2c"
 - }
 - ]
 - }
 - --disable-context-menu 禁用上下文菜單
 - --disable-dev-tools 禁用 Chrome 開發(fā)者工具
 - --full-screen 使打包的應(yīng)用程序全屏啟動(dòng)
 - --height <value> 打包應(yīng)用的高度,默認(rèn)為800px
 - --hide-window-frame 禁用窗口框架和控件
 - --max-height <value> 打包應(yīng)用的最大高度,默認(rèn)為無限制
 - --max-width <value> 打包應(yīng)用的最大寬度,默認(rèn)為無限制
 - --maximize 使打包的應(yīng)用程序最大化啟動(dòng)
 - --min-height <value> 打包應(yīng)用的最小高度,默認(rèn)為0
 - -m, --show-menu-bar 是否應(yīng)顯示菜單欄
 - --single-instance 單例,防止應(yīng)用程序多次運(yùn)行
 - --title-bar-style <value> 設(shè)置應(yīng)用標(biāo)題欄的樣式
 - /* site.css */
 - /* header is draggable... */
 - header {
 - -webkit-app-region: drag;
 - }
 - /* but any buttons inside the header shouldn't be draggable */
 - header button {
 - -webkit-app-region: no-drag;
 - }
 - /* perhaps move some items out of way for the traffic light */
 - header div:first-child {
 - margin-left: 100px;
 - margin-top: 25px;
 - }
 - --x <value> 打包應(yīng)用程序窗口的 X 位置
 - --y <value> 打包應(yīng)用程序窗口的 Y 位置
 - --zoom <value> 設(shè)置應(yīng)用程序打開時(shí)要使用的默認(rèn)縮放系數(shù),默認(rèn)為1.0
 - --lang <value> 設(shè)置語言,"fr", "en-US", "es"等
 
與 Docker 一起使用
Nativefier 也可以在 Docker 中使用。
- 從 Docker Hub 拉取最新的穩(wěn)定鏡像:
 
- docker pull nativefier/nativefier
 
或者自己構(gòu)建鏡像:
- docker build -t local/nativefier .
 
使用 docker 構(gòu)建本地應(yīng)用:
- docker run --rm -v ~/nativefier-apps:/target/ local/nativefier https://mail.google.com/ /target/
 
















 
 
 







 
 
 
 