【问题标题】:cordova hook: stop node until promise finished科尔多瓦钩子:停止节点,直到承诺完成
【发布时间】:2015-06-18 21:49:32
【问题描述】:

我正在编写一个科尔多瓦钩子,用于更新before_prepare 上的插件。

这里有三个问题:

  1. 我收到错误:[TypeError: 无法读取属性“缓冲区” 未定义]
  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);

【问题讨论】:

    标签: node.js cordova hook cordova-plugins


    【解决方案1】:

    要解决 1 和 2,请尝试将您的 nodejs 更新到最新的稳定版本,并使用 execSync 同步执行 Cordova CLI 命令:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-07
      • 1970-01-01
      • 2016-08-30
      • 2015-03-16
      • 1970-01-01
      相关资源
      最近更新 更多