node.js - Cordova Hook : stop node until promise finished

标签 node.js cordova hook cordova-plugins

我正在编写一个 cordova hook,它可以更新 before_prepare 上的插件。

这里有三个问题:

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

最佳答案

要解决问题 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/

相关文章:

node.js - GCP Cloud Function 从 Cloud Storage 读取文件

javascript - 三元运算符中的三元运算符是否可能

android - 如何使用 javascript 检测触摸移出节点。

php - svn钩子(Hook)编码问题

php - 在 Codeigniter 中手动调用/调用 Hook

c++ - 线程安全的 Hook 函数

node.js - EJS:<%= 与 <%-

node.js - 如何在 Dockerfile 中执行 2 个单独的命令?

java - 使用 "kiosk mode"创建 Phonegap 应用程序

cordova - 显示/隐藏 Cordova 的软键盘