国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

使用pkg打包Node.js應用的方法步驟

2024-05-06 15:28:34
字體:
來源:轉載
供稿:網友

Node.js應用不需要經過編譯過程,可以直接把源代碼拷貝到部署機上執行,確實比C++、Java這類編譯型應用部署方便。然而,Node.js應用執行需要有運行環境,意味著你需要先在部署機器上安裝Node.js。雖說沒有麻煩到哪里去,但畢竟多了一個步驟,特別是對于離線環境下的部署機,麻煩程度還要上升一級。假設你用Node.js寫一些小的桌面級工具軟件,部署到客戶機上還要先安裝Node.js,有點“大炮打蚊子”的感覺。更嚴重的是,如果部署機器上游多個Node.js應用,而且這些應用要依賴于不同的Node.js版本,那就更難部署了。

理想的情況是將Node.js打包為一個單獨的可執行文件,部署的時候直接拷貝過去就行了。除了部署方便外,因為不需要再拷貝源代碼了,還有利于保護知識產權。

將Node.js打包為可執行文件的工具有pkg、nexe、node-packer、enclose等,從打包速度、使用便捷程度、功能完整性來說,pkg是最優秀的。這篇文章就來講一講半年來我使用pkg打包Node.js應用的一些經驗。

pkg的打包原理簡單來說,就是將js代碼以及相關的資源文件打包到可執行文件中,然后劫持fs里面的一些函數,使它能夠讀到可執行文件中的代碼和資源文件。例如,原來的require('./a.js')會被劫持到一個虛擬目錄require('/snapshot/a.js')。

安裝

pkg既可以全局安裝也可以局部安裝,推薦采用局部安裝:

npm install pkg --save-dev

用法

pkg使用比較簡單,執行下pkg -h就可以基本了解用法,基本語法是:

pkg [options] <input>

<input>可以通過三種方式指定:

1.一個腳本文件,例如pkg index.js;
2.package.json,例如pkg package.json,這時會使用package.json中的bin字段作為入口文件;
3.一個目錄,例如pkg .,這時會尋找指定目錄下的package.json文件,然后在找bin字段作為入口文件。

[options]中可以指定打包的參數:

1.-t指定打包的目標平臺和Node版本,如-t node6-win-x64,node6-linux-x64,node6-macos-x64可以同時打包3個平臺的可執行程序;
2.-o指定輸出可執行文件的名稱,但如果用-t指定了多個目標,那么就要用--out-path指定輸出的目錄;
3.-c指定一個JSON配置文件,用來指定需要額外打包腳本和資源文件,通常使用package.json配置。

使用pkg的最佳實踐是:在package.json中的pkg字段中指定打包參數,使用npm scripts來執行打包過程,例如:

{ ... "bin": "./bin/www", "scripts": {  "pkg": "pkg . --out-path=dist/" }, "pkg": {  "scripts": [...]  "assets": [...],  "targets": [...] }, ...}

scripts和assets用來配置未打包進可執行文件的腳本和資源文件,文件路徑可以使用glob通配符。這里就浮現出一個問題:為什么有的腳本和資源文件打包不進去呢?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 莲花县| 陇西县| 阿拉善左旗| 安阳市| 隆回县| 吉林省| 疏附县| 池州市| 长寿区| 都江堰市| 郴州市| 海晏县| 二手房| 芦溪县| 浮山县| 四子王旗| 井陉县| 丰台区| 万源市| 全椒县| 五寨县| 建始县| 锡林浩特市| 科技| 抚州市| 南陵县| 宁河县| 鸡东县| 辰溪县| 体育| 囊谦县| 洛浦县| 革吉县| 安新县| 隆子县| 二连浩特市| 德清县| 贺州市| 乐亭县| 云阳县| 岢岚县|