我們都知道NodeJS的項目本身是沒辦法編譯成二進制可執行文件的,這給我們很多的業務場景造成了一些問題,比如要給客戶演示程序的時候,可能還得安裝node環境,然後在安裝一堆的依賴包,這還必須是網絡環境較好的情況下,而有時候,一般企業如果安全看的特别重,限制在局域網内訪問互聯網,那麼連包都沒辦法安裝,顯然對于你和對于客戶都是不友好的情景。
還有一種情況:如果我們演示項目時,把代碼交給對方部署,我們自己也不放心啊:Nodejs代碼是明文JS代碼,代碼洩露怎麼辦?當然,防代碼洩露可以用JShaman平台對JS代碼進行混淆加密。
pkg可以直接将nodejs項目打包成可執行文件,直接可以在沒有node環境下的freebsd,linux,alpine,macos,win上運行。
pkg打包的原理pkg實際上并不是直接将程序轉換成可執行文件,而是将node環境一起打包到了程序中,這樣就可以做到不用在沒有node環境下的電腦上運行node項目了,是不是很方便。下面我就将帶領大家一起來看下如何使用pkg打包。測試用例使用的是nodejs的express
使用場景簡單看下項目的目錄結構和代碼,首先你得初始化一個express項目,添加express的依賴
運行一些index.js文件,浏覽器打開看下效果
我們這是直接在項目中運行的,結果如上圖所示,現在我們的項目還是一個js文件,然後相互依賴,接下來我們使用pkg
安裝(因為電腦是windows系統,就在windows系統下運行)安裝非常簡單,需要全局安裝
npm install -g pkg
然後我們使用pkg --help先看下有哪些可用的命令
pkg可以一次為多個目标計算機生成可執行文件。可以通過--targets 選項指定以逗号分隔的目标列表。規範目标由3個元素組成,例如用短劃線分隔,node6-macos-x64或者node4-linux-armv6
打包過程中pkg會解析項目中的資源,檢測到require,遍曆項目的依賴項并将它們包含到可執行文件中。有些時候我們需要手動加入資源文件路徑,比如我們這個項目中的views,我們需要改一下package.json
"pkg": {
"assets": "views/**/*"
}
pkg index.js
然後需要等待一段時間,最終結果如下
我們打開我們的index-win.exe測試下
運行成功,然後打開浏覽器,和之前一樣的效果
總結pgk是一個将nodejs項目打包成可執行文件的工具,我們可以用它做很多事情,本文隻是簡單舉例,更多複雜的配置,可以配合官網介紹,然後運用到自己項目中,希望對你有幫助。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!