Hello一直试图提取和重新打包app.asar,以更新包中的文件:
await asar.extractAll(path.join(__dirname, './app.asar'),path.join(__dirname, './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
我不知道这是否是一个bug,但我已经坚持了大约两天,没有找到解决方案,我在这里创建了一个问题: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
}},但我还是没工作
上一次更新解析
电子运行它自己版本的nodejs,而我没有上一个软件包版本。一旦我更新了我的电子包,一切都成功了!希望这能帮到别人
发布于 2021-05-11 01:44:54
该错误显然来自asar包的lib/ line ystem.js中的这一行代码:
this.offset = BigInt(0)而且,这一错误显然意味着电子在构建不支持BigInt的应用程序时使用的nodejs版本是在10.4版中添加的。
所以,尽管你认为自己使用的是14.15.1版本,但这显然不是电子正在使用的。您需要升级在这个电子项目中使用的nodejs版本。
通过将此添加到项目中的一些自己的代码中,您可以确认nodejs的哪个版本正在使用:
console.log(process.version);发布于 2021-08-01 14:47:57
如果使用nvm管理节点版本,请检查node -v和nvm alias default是否返回相同的节点版本。
像詹金斯这样的工具永远..。启动nodejs应用程序时,将使用节点的默认版本,这可能与终端控制台使用的版本不同。
做检查:nvm list
修正差异:nvm alias default "node -v"
https://stackoverflow.com/questions/67479352
复制相似问题