首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReferenceError: BigInt未定义为Asar电子节点

ReferenceError: BigInt未定义为Asar电子节点
EN

Stack Overflow用户
提问于 2021-05-11 01:10:23
回答 2查看 6.9K关注 0票数 1

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'));

但我一直在犯这个错误:

代码语言:javascript
复制
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中:

代码语言:javascript
复制
"standard": {
"env": {
  "mocha": true
},
"globals": [
  "BigInt"
]},

我试着把它改成:

代码语言:javascript
复制
"standard": {
"env": {
  "es2020": true,
"browser": true,
"node": true,
  "mocha": true
},
"globals": {
  "BigInt":true
}},

但我还是没工作

上一次更新解析

电子运行它自己版本的nodejs,而我没有上一个软件包版本。一旦我更新了我的电子包,一切都成功了!希望这能帮到别人

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-11 01:44:54

该错误显然来自asar包的lib/ line ystem.js中的这一行代码:

代码语言:javascript
复制
this.offset = BigInt(0)

而且,这一错误显然意味着电子在构建不支持BigInt的应用程序时使用的nodejs版本是在10.4版中添加的。

所以,尽管你认为自己使用的是14.15.1版本,但这显然不是电子正在使用的。您需要升级在这个电子项目中使用的nodejs版本。

通过将此添加到项目中的一些自己的代码中,您可以确认nodejs的哪个版本正在使用:

代码语言:javascript
复制
console.log(process.version);
票数 1
EN

Stack Overflow用户

发布于 2021-08-01 14:47:57

如果使用nvm管理节点版本,请检查node -vnvm alias default是否返回相同的节点版本。

像詹金斯这样的工具永远..。启动nodejs应用程序时,将使用节点的默认版本,这可能与终端控制台使用的版本不同。

做检查:nvm list

修正差异:nvm alias default "node -v"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67479352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档