Nodejs使用pkg打包為可執(zhí)行文件的解決方案
安裝pkg
npm install -g pkg
查看pkg命令
pkg --help
修改package.json
新增bin入口配置
{
"name": "takescreenshot",
"version": "1.0.0",
"bin": "app.js", // 新增bin入口配置
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"description": "",
"dependencies": {
"express": "^4.21.1",
}
}打包
默認(rèn)打包
pkg .
如果上面package.json沒(méi)有配置bin的話,可以執(zhí)行
pkg .\app.js
指定打包的文件名
pkg . --target win --output 你的文件名.exe
報(bào)錯(cuò)解決
PS E:\TakeProject\takeScreenShot> pkg .
> pkg@5.8.1
> Targets not specified. Assuming:
node16-linux-x64, node16-macos-x64, node16-win-x64
> Fetching base Node.js binaries to PKG_CACHE_PATH
fetched-v16.16.0-win-x64 [ ] 0%> Not found in remote cache:
{"tag":"v3.4","name":"node-v16.16.0-win-x64"}
> Building base binary from source:
built-v16.16.0-win-x64
> Fetching Node.js source archive from nodejs.org...
> Error! AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:(0, assert_1.default)(!this.bar)
at Log.enableProgress (D:\ruanjian\node\nvm\v16.20.2\node_modules\pkg\node_modules\pkg-fetch\lib-es5\log.js:64:30)
at D:\ruanjian\node\nvm\v16.20.2\node_modules\pkg\node_modules\pkg-fetch\lib-es5\utils.js:58:31
at step (D:\ruanjian\node\nvm\v16.20.2\node_modules\pkg\node_modules\pkg-fetch\lib-es5\utils.js:33:23)
at Object.next (D:\ruanjian\node\nvm\v16.20.2\node_modules\pkg\node_modules\pkg-fetch\lib-es5\utils.js:14:53)
at D:\ruanjian\node\nvm\v16.20.2\node_modules\pkg\node_modules\pkg-fetch\lib-es5\utils.js:8:71
at new Promise (<anonymous>)
at __awaiter (D:\ruanjian\node\nvm\v16.20.2\node_modules\pkg\node_modules\pkg-fetch\lib-es5\utils.js:4:12)
at downloadUrl (D:\ruanjian\node\nvm\v16.20.2\node_modules\pkg\node_modules\pkg-fetch\lib-es5\utils.js:53:12)
at D:\ruanjian\node\nvm\v16.20.2\node_modules\pkg\node_modules\pkg-fetch\lib-es5\build.js:142:66
at step (D:\ruanjian\node\nvm\v16.20.2\node_modules\pkg\node_modules\pkg-fetch\lib-es5\build.js:44:23)
進(jìn)入網(wǎng)站: https://github.com/vercel/pkg-fetch/releases
找到我報(bào)錯(cuò)的tag的版本,點(diǎn)進(jìn)這個(gè)版本的詳情

找到報(bào)錯(cuò)的對(duì)象的name值里面的版本號(hào)信息
例如上面我的報(bào)錯(cuò)的版本是16.16.0,那就在網(wǎng)站上面找到這個(gè)版本

下載報(bào)錯(cuò)的name的名稱對(duì)應(yīng)文件
我報(bào)錯(cuò)的是{"tag":"v3.4","name":"node-v16.16.0-win-x64"}
則在這里找到node-v16.16.0-win-x64點(diǎn)擊下載
下面的v3.4是上面報(bào)錯(cuò)的對(duì)象的tag屬性的值
找到C:\Users\22560\.pkg-cache\v3.4文件夾
將上面下載的文件放到文件夾內(nèi),并重命名為fetched-v16.16.0-win-x64
同理:linux和macos下載也是一樣,復(fù)制到該文件夾內(nèi)然后將前綴node改成fetched即可
然后重新pkg .即可
到此這篇關(guān)于Nodejs使用pkg打包為可執(zhí)行文件的文章就介紹到這了,更多相關(guān)nodejs使用pkg打包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mongoose經(jīng)常返回e11000 error的原因分析
這篇文章主要給大家分析了Mongoose經(jīng)常返回e11000 error的原因,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友可以們下面來(lái)一起看看吧。2017-03-03
Electron調(diào)用外接攝像頭并拍照上傳實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了Electron調(diào)用外接攝像頭并拍照上傳實(shí)例實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Nodejs 和 Electron ubuntu下快速安裝過(guò)程
本文較為詳細(xì)的給大家介紹了Nodejs 和 Electron ubuntu下快速安裝過(guò)程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05
iOS + node.js使用Socket.IO框架進(jìn)行實(shí)時(shí)通信示例
本篇文章主要介紹了iOS + node.js使用Socket.IO框架進(jìn)行實(shí)時(shí)通信示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04
Node.js console控制臺(tái)簡(jiǎn)單用法分析
這篇文章主要介紹了Node.js console控制臺(tái)簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了nodejs console控制臺(tái)功能、常見(jiàn)函數(shù)與簡(jiǎn)單使用技巧,需要的朋友可以參考下2019-01-01

