node.js - ReferenceError:BigInt 未定义 Asar Electron Nodejs
问题描述
您好一直在尝试提取并重新打包 app.asar 以更新包内的文件:
await asar.extractAll(path.join(__dirname, './app.asar'),path.join(__dirname, './destfolder'));
然后更改destfolder中的一些文件
await asar.createPackage(path.join(__dirname, './destfolder'),path.join(__dirname, './app.asar'));
但我一直收到这个错误:
ReferenceError: BigInt is not defined
at new Filesystem (C:\Users\Path\to\project\node_modules\asar\lib\filesystem.js:17:5)
at Object.module.exports.readFilesystemSync (C:\Users\Path\to\project\node_modules\asar\lib\disk.js:85:24)
at Object.module.exports.extractAll (C:\Users\Path\to\project\node_modules\asar\lib\asar.js:170:27)
at Request._callback (C:\Users\Path\to\project\server.js:221:26)
at Request.init.self.callback (C:\Users\Path\to\project\node_modules\request\request.js:185:22)
at Request.emit (events.js:182:13)
at Request.<anonymous> (C:\Users\Path\to\project\node_modules\request\request.js:1154:10)
at Request.emit (events.js:182:13)
at IncomingMessage.<anonymous> (C:\Users\Path\to\project\node_modules\request\request.js:1076:12)
at Object.onceWrapper (events.js:273:13)
at IncomingMessage.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1090:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
平台:Windows x64 节点版本:v14.15.1
我不知道这是否是一个错误,但我已经坚持了大约 2 天,没有找到解决方案我在这里创建了一个问题:https ://github.com/electron/asar/issues/ 217 感谢您的努力,请不要犹豫询问任何信息
更新
在节点模块 asar 文件夹中 package.json :
"standard": {
"env": {
"mocha": true
},
"globals": [
"BigInt"
]},
我尝试将其更改为:
"standard": {
"env": {
"es2020": true,
"browser": true,
"node": true,
"mocha": true
},
"globals": {
"BigInt":true
}},
我还是没有工作
上次更新已解决
Electron 运行它自己的 nodejs 版本,我没有最后一个包版本。一旦我更新了电子包,一切正常!希望这会对某人有所帮助
解决方案
该错误显然来自 asar 包的 lib/filesystem.js 中的这行代码:
this.offset = BigInt(0)
而且,该错误显然意味着您有一个 nodejs 版本,电子在构建您的应用程序时正在使用该版本,该版本不支持BigInt
v10.4 中添加的内容。
因此,尽管您认为您使用的是 v14.15.1,但这显然不是 electron 构建您的应用程序所使用的。您需要升级您在此电子项目中使用的 nodejs 版本。
您可以通过将其添加到项目中您自己的一些代码中来确认正在使用的 nodejs 版本:
console.log(process.version);
推荐阅读
- c# - 表达式体成员与 Lambda 表达式
- bash - 运行“php artisan黄昏”时重定向命令行输出不起作用
- javascript - 如何消除从文件加载的负载闪烁(最好是同步的)?
- html - Excel 动态 Web 查询(简单问题!)
- swift - 为什么快速构建在应用程序引擎上失败?
- c - 使用 C 将任何类型作为方法参数传递
- docker - docker-compose 重启策略 - 禁用重启之间的指数延迟
- angular - 我可以导出 Sass 变量并将它们导入 Angular Typescript 变量吗?
- r - 军官 R 包的全局选项
- javascript - 在 modal.find().text("String NEWLINE String) 中创建新行