在电子上使用 nodegit 进行异步操作不起作用
Async operations with nodegit on electron not working
我正在使用 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 returns 一个错误被 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
.
nodegit
包含原生 NodeJS 模块,必须重建原生模块以针对您使用它们的 Electron 版本。可以在 http://electron.atom.io/docs/tutorial/using-native-node-modules/
找到重建本机模块的说明
我正在使用 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 returns 一个错误被 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
.
nodegit
包含原生 NodeJS 模块,必须重建原生模块以针对您使用它们的 Electron 版本。可以在 http://electron.atom.io/docs/tutorial/using-native-node-modules/