gpt4 book ai didi

webpack - NodeGit - 无法读取未定义的属性 'TYPE'

转载 作者:行者123 更新时间:2023-12-03 12:27:34 24 4
gpt4 key购买 nike

我正在使用 Electron ,我的主要流程中有以下内容

import * as Git from "nodegit";
console.log("NodeGit version is:", Git.version);
console.log("The HARD reset type has the id", Git.Reset.TYPE.HARD);
当我像往常一样开始 yarn 时,我得到以下输出
NodeGit version is: 0.27.0
App threw an error during load
TypeError: Cannot read property 'TYPE' of undefined
at Object../src/main.ts ([redacted-project-dir]\.webpack\main\index.js:17543:57)
at __webpack_require__ ([redacted-project-dir]\.webpack\main\index.js:21:30)
at [redacted-project-dir]\.webpack\main\index.js:85:18
at Object.<anonymous> ([redacted-project-dir]\.webpack\main\index.js:88:10)
at Module._compile (internal/modules/cjs/loader.js:968:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:986:10)
at Module.load (internal/modules/cjs/loader.js:816:32)
at Module._load (internal/modules/cjs/loader.js:728:14)
at Module._load (electron/js2c/asar.js:717:26)
at Function.Module._load (electron/js2c/asar.js:717:26)
这可以在使用创建的新项目中复制
yarn create electron-app my-electron-webpack-typescript --template=typescript-webpack
请注意,当我使用 ipc 在渲染器进程中执行这些操作时,我会得到相同的结果。
我发现了一个讨论 here有一个类似的问题,解决方案似乎是将构建目标设置为 ES5 而不是 ES6,因为 Reset 模块有一个名为 default 的函数这可能会导致 ES6 代码无法导入它。我不确定这是否可能是这种情况。
但我不知道如何将编译目标指定为 ES5。 (我正在使用 webpack,我似乎也在使用 babel。)

最佳答案

我相信你应该检查你 package 的模块类型。 webpack + typescript 使用的默认模块系统可以改变 require 的行为这样您就无法更改导出。 NodeGit 在它的所有文件中改变了它的主要导出,所以 lib/enums.js无法分配 TYPEGit.Reset .我相信在我的一个项目中,我必须切换到 babel(现在支持 typescript)+ CommonJS 以避免这个问题。

关于webpack - NodeGit - 无法读取未定义的属性 'TYPE',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63844607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com