0

我正在使用 electron 和 nodegit 开发一个项目,我最近更新了我的依赖项。解决了兼容性问题后,我发现有两个版本的 nodegit 和 electron 可以工作。但经过测试,我发现异步 nodegit 操作失败,而同步操作正常。这是一个不起作用的代码示例:

const pathToRepo = require('path').resolve(path);
Git.Repository.open(pathToRepo)
.then((repo) => {
  console.log(repo);
})
.catch( (err) => {
  console.log(err);
});

在执行它时,promise 返回一个被 catch 块捕获的错误,并在控制台上输出值时简单地显示true,并且不提供任何附加信息。

此外,在更新我的依赖项之前,我已将节点从 5 更新到 6.3。

以前的:

电子预建:0.37.8
nodegit:0.13.0

更新后:

电子预建:1.2.1
nodegit:0.14.1

编辑:通过添加一个 npm 脚本解决:

"rebuild": "npm rebuild --runtime=electron --target=1.2.1 disturl=https://atom.io/download/atom-shell --build-from-source",

和运行npm run rebuild

4

1 回答 1

0

nodegit包含本机 NodeJS 模块,必须重新构建本机模块以针对您使用它们的 Electron 版本。可以在http://electron.atom.io/docs/tutorial/using-native-node-modules/找到重建本机模块的说明

于 2016-08-05T10:01:47.007 回答