Хук кордовы: остановить узел, пока обещание не будет выполнено

Я пишу хук Cordova, который обновляет плагины на before_prepare.

Здесь три вопроса:

  1. Я получаю сообщение об ошибке: [TypeError: Cannot read property 'buffer' of undefined]
  2. Я хотел бы остановить поток, пока плагин не будет обновлен
  3. Можно ли узнать, был ли плагин добавлен из реестра плагинов 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);

person Miquel    schedule 21.10.2014    source источник


Ответы (1)


Чтобы решить 1 и 2, попробуйте обновить ваши nodejs до последней стабильной версии и использовать execSync для синхронного выполнения команд Cordova CLI:

var execSync = require('child_process').execSync;
...
execSync("cordova plugin rm " + plugin);
execSync("cordova plugin add " + plugin);
person Dunc    schedule 18.06.2015