国产探花免费观看_亚洲丰满少妇自慰呻吟_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通配符。這里就浮現出一個問題:為什么有的腳本和資源文件打包不進去呢?

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

圖片精選

主站蜘蛛池模板: 罗源县| 新营市| 亚东县| 正定县| 东乡族自治县| 永吉县| 新丰县| 新泰市| 屏山县| 新平| 承德县| 阳高县| 木里| 宜宾市| 弥渡县| 红桥区| 梁河县| 黄山市| 陇南市| 布尔津县| 花莲县| 玉树县| 绥江县| 林州市| 保山市| 伊川县| 通河县| 唐海县| 桂阳县| 华池县| 临颍县| 嘉祥县| 隆昌县| 静安区| 正定县| 晋城| 延长县| 梓潼县| 新巴尔虎左旗| 定襄县| 崇阳县|