node app 打包工具pkg的具體使用
node 打包可執(zhí)行文件的工具有很多。node-packer 是國人寫的,但一年前就停止更新了。而 nexe 一到fetching prebuilt binary 就報錯,放棄了,最終選擇了 pkg。
這個項目很神奇,直接將node.js項目打包成windows可以直接執(zhí)行的exe文件(也支持FreeBSD、linux、macos、arm系統(tǒng)),甚至不需要安裝Node.js,且無須修改你項目中的任何代碼!
命令行打包
pkg -t node10-macos-x64 index.js
package.json 配置
如果不想每次都輸入這么多參數(shù),則需要在 packge.json 文件增加一個 bin 和 pkg 選項:
``` "pkg": { "scripts": [], // 不需要 striped 的 js 文件 "targets": [ // 打包選項,格式為:node版本-平臺類型 mac 或 windows-架構(gòu) "node10-win-x64", "node10-macos-x64" ], "output": "proxy" // 可執(zhí)行文件名,比如 proxy-win.exe 或 proxy-macos }, "bin": "index.js" // app 的啟動文件 ```
然后,你只需要用 pkg . 就可以了。
注:pkg 最多只支持到 node 10 版本。node 11 還暫不支持。
Assets
有一些文件,它不是 js 文件,也沒有在代碼中 require 過,比如 html 和 css 文件。pkg 就無能為力了。如果想將這些文件也打包到可執(zhí)行文件中,將它們放到 pakcage.json 的 pkg 的 assets 數(shù)組中就可以了,比如:
"assets": [ // 需要被打包的資源文件(即沒有在代碼中被 require 過的文件) "index.html" ],
動態(tài)加載的文件
有一些文件,你不想打包進(jìn)去,比如一些配置文件、json 文件,可以在 require 時指定絕對路徑,比如 data 目錄下的 users.json 文件:
const users = require(path.join(process.execPath,'../data/users.json'))
然后在打包后,將在可執(zhí)行文件的同級目錄下新建 data 目錄,再將 users.json 文件拷貝到 data 目錄即可。
這樣,以在運行時改變 app 的一些參數(shù)。
注意,修改 users.json 文件內(nèi)容后,需要重啟可執(zhí)行文件才能生效。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
node封裝一個控制臺進(jìn)度條插件???????詳情
這篇文章主要介紹了node封裝一個控制臺進(jìn)度條插件???????詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08node.js中fs.stat與fs.fstat的區(qū)別詳解
fs.stat和fs.fstat他們都是用來獲取文件的狀態(tài)信息,下面這篇文章主要給大家介紹了關(guān)于node.js中fs.stat與fs.fstat區(qū)別的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-06-06Node.js 使用遞歸實現(xiàn)遍歷文件夾中所有文件
這篇文章主要介紹了Node.js使用遞歸實現(xiàn)遍歷文件夾中所有文件,需要的朋友可以參考下2017-09-09nodejs的HTML分析利器node-jquery用法淺析
這篇文章主要介紹了nodejs的HTML分析利器node-jquery用法,簡單分析了node-jquery的功能并結(jié)合實例說明了node-jquery控制臺輸出信息的操作技巧,需要的朋友可以參考下2016-11-11NodeJS使用formidable實現(xiàn)文件上傳
這篇文章主要為大家詳細(xì)介紹了NodeJS使用formidable實現(xiàn)文件上傳的相關(guān)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10