当前位置: 首页 > news >正文

Nodejs使用pkg打包为可执行文件

安装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的话,可以执行

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_PATHfetched-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:31at 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:71at 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:66at step (D:\ruanjian\node\nvm\v16.20.2\node_modules\pkg\node_modules\pkg-fetch\lib-es5\build.js:44:23)

进入网站: https://github.com/vercel/pkg-fetch/releases

找到我报错的tag的版本,点进这个版本的详情

在这里插入图片描述
找到报错的对象的name值里面的版本号信息

例如上面我的报错的版本是16.16.0,那就在网站上面找到这个版本

在这里插入图片描述
下载报错的name的名称对应文件

我报错的是{"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文件夹

将上面下载的文件放到文件夹内,并重命名为fetched-v16.16.0-win-x64

同理:linuxmacos下载也是一样,复制到该文件夹内然后将前缀node改成fetched即可

然后重新pkg .即可


http://www.mrgr.cn/news/58903.html

相关文章:

  • 《ToDesk云电脑vs青椒云性能测试,谁更能实现游戏自由?》
  • Lab3.1:Priority Sorted Doubly Linked List
  • SLAM|2. 差异与统一:坐标系变换与外参标定
  • 域名重定向后网址打不开的原因及解决方法
  • 如何在 Ubuntu 18.04 上使用 Let‘s Encrypt 保护 Apache
  • Python数值计算(32)——simpson 1/3积分公式
  • 检索增强型生成模型RichRAG:为多面查询提供丰富回应
  • 【Nginx系列】关于一次请求超时的思考
  • Java CompletableFuture
  • 计算机网络——开放系统互连参考模型
  • Spring Boot框架下的厨艺社区开发
  • 解决微信OAuth2.0网页授权回调域名只能设置一个的问题
  • Docker部署项目
  • LeetCode 每日一题 2024/10/21-2024/10/27
  • day02|计算机网络重难点之HTTP请求报文和响应报文、HTTP的请求方式(方法字段)、GET请求和POST请求的区别
  • 统一异常处理和拦截器
  • 了解Oracle表结构查询:获取列信息与注释
  • Mac打开环境变量配置文件,source ~/.zshrc无法打开问题解决
  • 分享一款录屏、直播软件
  • 计算机组成原理之指令系统的基本概念、指令格式
  • 数学之三角函数
  • 太香了,用AI做育儿账号带货,卖出2.1万件赚佣金10W+
  • Spring Boot框架下的厨艺社交网络构建
  • IP协议详解:报头格式、主机定位、转发流程、网段划分与路由机制
  • 算法刷题-小猫爬山
  • 《打造 C++团队知识库:提升团队实力,开启高效编程之旅》