雖然可以通過編輯package.json文件實現更多選項,但是大多數nodejs程序只有一個入口,因此推薦使用命令行直接編譯打包。
命令行
進入到項目根目錄,以入口腳本爲app.js爲例:
pkg -o app -t node14-linux-x64 app.js
-o 參數 輸出的可執行程序名稱
-t 目標平臺類型,這裏是輸出到linux平臺
常見問題
首次使用會出現下載基礎包時間過長的問題,如:
> 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%
這種情況下可以手動下載,進入頁面手動下載對應的基礎包:
https://github.com/vercel/pkg-fetch/releases
然後拷貝到全局目錄PKG_CACHE_PATH 內,PKG_CACHE_PATH 可以通過設置系統變量來設置:
export PKG_CACHE_PATH=/usr/local/node/pkg_cache_path
運行完畢後把這行命令建議放到 /etc/profile文件尾部實現長久生效。
運行過 pkg命令後,PKG_CACHE_PATH 目錄下有個以版本號命名的目錄,將剛纔下載的文件重命名爲所需文件拷貝到這個目錄即可。例如上面命令提示的文件名是 fetched-v14.4.0-linux-x64 ,則拷貝時重命名爲該名稱。
再次運行pkg命令就不會下載了,打包速度很快!