使用nodegit on the electron notync的异步操作

时间:2016-08-04 19:33:05

标签: javascript electron nodegit

我正在使用电子和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

1 个答案:

答案 0 :(得分:0)

nodegit包含本机NodeJS模块,必须重建本机模块以定位您使用它们的Electron版本。有关重建本机模块的说明,请访问http://electron.atom.io/docs/tutorial/using-native-node-modules/