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", } }
打包
默認打包
pkg .
如果上面package.json
沒有配置bin
的話,可以執(zhí)行
pkg .\app.js
指定打包的文件名
pkg . --target win --output 你的文件名.exe
報錯解決
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)
進入網(wǎng)站: https://github.com/vercel/pkg-fetch/releases
找到我報錯的tag
的版本,點進這個版本的詳情
找到報錯的對象的name值里面的版本號信息
例如上面我的報錯的版本是16.16.0
,那就在網(wǎng)站上面找到這個版本
下載報錯的name的名稱對應(yīng)文件
我報錯的是{"tag":"v3.4","name":"node-v16.16.0-win-x64"}
則在這里找到node-v16.16.0-win-x64
點擊下載
下面的v3.4
是上面報錯的對象的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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
從零開始學(xué)習(xí)Node.js系列教程一:http get和post用法分析
這篇文章主要介紹了從零開始學(xué)習(xí)Node.js系列教程一:http get和post用法,結(jié)合具體實例形式分析了nodejs中g(shù)et與post請求的使用方法與相關(guān)注意事項,需要的朋友可以參考下2017-04-04vscode安裝教程以及配置node.js環(huán)境全過程
這篇文章主要給大家介紹了關(guān)于vscode安裝教程以及配置node.js環(huán)境的相關(guān)資料,VSCode是一款由微軟開發(fā)的輕量級編輯器,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-10-10使用Node.js實現(xiàn)RESTful API的示例
Node.js可以用很少代碼簡單地實現(xiàn)一個Web服務(wù),并且它有一個非?;钴S的社區(qū),通過Node出色的包管理機制(NPM)可以非常容易獲得各種擴展支持。 對簡單的應(yīng)用場景Node.js實現(xiàn)REST是一個非常合適的選擇。 本文介紹如何用Node.js實現(xiàn)REST服務(wù)。2017-08-08