我正在编写一个 cordova hook,它可以更新 before_prepare
上的插件。
这里有三个问题:
- 我收到错误:[TypeError: 无法读取属性“buffer” 未定义]
- 我想停止流程,直到插件完成 已更新
- 是否可以知道插件是从 cordova 插件注册表还是从 git 存储库添加的?
我正在使用的代码:
var plugin = context.requireCordovaModule('cordova-lib/src/cordova/plugin'),
pluginNames = context.opts.cordova.plugins;
function updatePlugin(pluginNames) {
pluginNames.forEach(function (pluginName) {
return removePlugin(pluginName).then(function () {
addPlugin(pluginName);
}, function(e) {
console.log(e); // ERROR: [TypeError: Cannot read property 'buffer' of undefined]
});
});
}
function removePlugin(pluginNames) {
return plugin('rm', pluginNames);
}
function addPlugin(pluginNames) {
return plugin('add', pluginNames);
}
updatePlugin(pluginNames);
最佳答案
要解决问题 1 和 2,请尝试将您的 Nodejs 更新到最新的稳定版本,并使用 execSync 同步执行 Cordova CLI 命令:
var execSync = require('child_process').execSync;
...
execSync("cordova plugin rm " + plugin);
execSync("cordova plugin add " + plugin);
关于node.js - Cordova Hook : stop node until promise finished,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26496152/