2015-05-12 10 views
5

Tôi chỉ nhân bản kho lưu trữ của ứng dụng cordova, nhưng trong .gitignore thêm dir/plugins.Cordova làm thế nào để cài đặt thiếu plugin sau khi kiểm tra dự án từ repo?

Tôi làm cách nào để cài đặt các plugin bị thiếu này? U đã cố gắng tìm bất kỳ tệp cấu hình nào mà các plugin được sử dụng được lưu, nhưng không có may mắn.

Rất cám ơn mọi lời khuyên.

+0

giải pháp của tôi đã hoạt động? – aorfevre

+0

Có, nhưng tôi phải loại bỏ packages.json khỏi tệp .gitignore. – redrom

Trả lời

0

Nếu bạn thêm add_plugin & xóa các móc plugin, package.json của bạn sẽ có danh sách cordovaPlugins.

Nếu có, sau đó, các giải pháp mà tôi sử dụng là để loại bỏ nền tảng này và thêm nó một lần nữa để lấy cho tất cả các plugin

cordova platform remove android 
cordova platform add android 

đây là những móc cần thiết

móc/after_plugin_add/010_register_plugin .js

#!/usr/bin/env node 
/** 
* Push plugins to cordovaPlugins array after_plugin_add 
*/ 
var fs = require('fs'); 
var packageJSON = require('../../package.json'); 

packageJSON.cordovaPlugins = packageJSON.cordovaPlugins || []; 
process.env.CORDOVA_PLUGINS.split(',').forEach(function (plugin) { 
    if(packageJSON.cordovaPlugins.indexOf(plugin) == -1) { 
    packageJSON.cordovaPlugins.push(plugin); 
    } 
}); 

fs.writeFileSync('package.json', JSON.stringify(packageJSON, null, 2)); 

móc/after_plugin_rm/010_deregister_plugin.js

#!/usr/bin/env node 
/** 
    * Remove plugins from cordovaPlugins array after_plugin_rm 
    */ 
    var fs = require('fs'); 
    var packageJSON = require('../../package.json'); 

    packageJSON.cordovaPlugins = packageJSON.cordovaPlugins || []; 

    process.env.CORDOVA_PLUGINS.split(',').forEach(function (plugin) { 
     var index = packageJSON.cordovaPlugins.indexOf(plugin); 
     if (index > -1) { 
     packageJSON.cordovaPlugins.splice(index, 1); 
     } 
    }); 

    fs.writeFile('package.json', JSON.stringify(packageJSON, null, 2)); 

móc/after_platform_add/010_install_plugins.js

#!/usr/bin/env node 

/** 
* Install all plugins listed in package.json 
* https://raw.githubusercontent.com/diegonetto/generator-ionic/master/templates/hooks/after_platform_add/install_plugins.js 
*/ 
var exec = require('child_process').exec; 
var path = require('path'); 
var sys = require('sys'); 

var packageJSON = require('../../package.json'); 
var cmd = process.platform === 'win32' ? 'cordova.cmd' : 'cordova'; 
// var script = path.resolve(__dirname, '../../node_modules/cordova/bin', cmd); 

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

Một giải pháp khác là thêm một nhiệm vụ cho cắm cài đặt như đã mô tả trên trang này: http://jbavari.github.io/blog/2014/06/24/managing-cordova-plugins-with-package-dot-json-and-hooks/

12

Bạn có thể sử dụng ionic state để quản lý plugin và biểu mẫu.

https://github.com/driftyco/ionic-cli#ionic-state


đọc package.json và cài đặt được liệt kê plugins/plateforms:

ionic state restore 

Lưu plugin hiện tại/nền tảng để các package.json:

ionic state save 

Hủy bỏ tất cả mọi thứ ! (Bao gồm cả Ionic plugin mặc định ...):

ionic state clear 

Hủy bỏ tất cả mọi thứ và mang lại những gì bạn đã quy định tại package.json của bạn:

ionic state reset 
+0

câu trả lời hay nhất, tôi sử dụng "khôi phục trạng thái ion" và mọi thứ sẵn sàng, cảm ơn – vuhung3990

3

cordova prepare dường như làm các trick cho tôi. Sau khi nhân bản kho lưu trữ của tôi, tôi đã gặp lỗi "Không có nền tảng được thêm vào dự án này" khi chạy cordova requirements, mặc dù các nền tảng được liệt kê trong tệp config.xml. Chạy cordova prepare điền vào các thư mục plugin, cho phép cordova requirements chạy.

+0

Điều này phải được đánh dấu là câu trả lời – RezaRahmati

Các vấn đề liên quan