平台期间未安装的插件在ios上添加了ionic / cordova

时间:2015-07-06 12:27:15

标签: cordova ionic-framework ionic cordova-plugins

使用已在grid.arrange(p1, p2,p3,ncol=3) 中定义的插件添加离子平台时,会在package.json中安装并引用一组随机插件。

作为一个具体的例子,我的plugins/ios.json包含:

package.json

首次运行时,cordovaPlugins: [ "com.danielcwilson.plugins.googleanalytics", "com.ionic.keyboard", "cordova-plugin-console", "cordova-plugin-device", "uk.co.whiteoctober.cordova.appversion", "com.paypal.cordova.mobilesdk", "nl.x-services.plugins.flashlight", "cordova-plugin-inappbrowser", "https://github.com/wildabeast/BarcodeScanner" ] 包含:

plugins/ios.json

如果我清除平台和插件文件夹并重新添加平台,那么第二次运行时我得到:

com.danielcwilson.plugins.googleanalytics
com.paypal.cordova.mobilesdk
com.phonegap.plugins.barcodescanner
cordova-plugin-console
nl.x-services.plugins.flashlight
uk.co.whiteoctober.cordova.appversion

等等。

com.ionic.keyboard com.paypal.cordova.mobilesdk cordova-plugin-console cordova-plugin-device cordova-plugin-inappbrowser nl.x-services.plugins.flashlight uk.co.whiteoctober.cordova.appversion 步骤中,我确实看到了所有插件的添加;但有时候ionic platform add ios步骤不会运行。

是否有可靠的方法来安装插件?

我正在使用:

Running command: /path/to/project/hooks/after_platform_add/010_install_plugins.js

请求的| What | Version | | :------ | :------ | | node | 0.10.39 | | cordova | 5.1.1 | | ionic | 1.6.1 | 内容:

010_install_plugins.sh

这是离子的默认值。

2 个答案:

答案 0 :(得分:1)

事实证明,这个错误本身就是Ionic。

钩子文件异步运行所有插件安装,这意味着文件被同时写入,因此更改丢失了。

我已向ionic-cli提交拉取请求以解决问题here。改变是取代:

 packageJSON.cordovaPlugins.forEach(function (plugin) {
   exec('cordova plugin add ' + plugin, function (error, stdout, stderr) {
     sys.puts(stdout);
   });
});

使用:

function installNextPlugin() {
    var curPlugin = packageJSON.cordovaPlugins.shift();
    if (curPlugin) {
        exec('cordova plugin add ' + curPlugin, function(err, stdout, stderr) {
            sys.puts(stdout);
            sys.puts(stderr);
        })
            .on("exit", function(code) {
                if (code) {
                    console.log("'cordova plugin add " + curPlugin + "' failed with code '" + code + "'");
                    process.exit(code);
                } else {
                    installNextPlugin();
                }
            });
    }
}

installNextPlugin();
010_install_plugins.js中的

答案 1 :(得分:0)

这是我之前遇到的问题,也许你已经完成了它但是值得一试:chmod + x 010_install_plugins.js