nodejs pkg打包exe
?pkg -t win xxx.js
?前提要下載對(duì)應(yīng)的node二進(jìn)制到pkg的cache目錄,本來會(huì)自己下載的但是墻了。
C:\Users\Administrator\.pkg-cache\v3.4\fetched-v18.5.0-win-x64
下載的是node-v18.5.0-win-x64,改名,版本和當(dāng)前node基本一致即可。
++++++++++++++++++++++
雖然可以通過編輯package.json文件實(shí)現(xiàn)更多選項(xiàng),但是大多數(shù)nodejs程序只有一個(gè)入口,因此推薦使用命令行直接編譯打包。
命令行
進(jìn)入到項(xiàng)目根目錄,以入口腳本為app.js為例:
pkg -o app -t node14-linux-x64 app.js
-o 參數(shù) 輸出的可執(zhí)行程序名稱
-t 目標(biāo)平臺(tái)類型,這里是輸出到linux平臺(tái)
首次使用會(huì)出現(xiàn)下載基礎(chǔ)包時(shí)間過長的問題,如:
??? > Targets not specified. Assuming:
????? node14-linux-x64, node14-macos-x64, node14-win-x64
??? > Fetching base Node.js binaries to PKG_CACHE_PATH
????? fetched-v14.4.0-linux-x64??? [??????????????????? ] 0%
這種情況下可以手動(dòng)下載,進(jìn)入頁面手動(dòng)下載對(duì)應(yīng)的基礎(chǔ)包:https://github.com/vercel/pkg-fetch/releases
然后拷貝到全局目錄PKG_CACHE_PATH 內(nèi),PKG_CACHE_PATH 可以通過設(shè)置系統(tǒng)變量來設(shè)置:
export PKG_CACHE_PATH=/usr/local/node/pkg_cache_path
運(yùn)行完畢后把這行命令建議放到 /etc/profile文件尾部實(shí)現(xiàn)長久生效。
運(yùn)行過 pkg命令后,PKG_CACHE_PATH 目錄下有個(gè)以版本號(hào)命名的目錄,將剛才下載的文件重命名為所需文件拷貝到這個(gè)目錄即可。例如上面命令提示的文件名是 fetched-v14.4.0-linux-x64 ,則拷貝時(shí)重命名為該名稱。
再次運(yùn)行pkg命令就不會(huì)下載了,打包速度很快!