Cordova CLI源码分析(五)——添加平台
添加平台支持,其实本质是利用各平台SDK环境创建原生工程文件。所以,所有函数也是围绕这一主题展开。
入口当然是platform函数
module.exports = function platform(command, targets, callback) {
.....
};
先不看具体源码,再看其他几个函数
(1)module.exports.supports = function(project_root, name, callback) {
这个函数主要执行以下几步:
//检查传入参数
//判断平台是否支持
//获得顶层目录下platforms.js中parser参数指定的各平台解析文件
//检查各平台依赖的SDK是否存在
var end = n(targets.length, function() { hooks.fire('after_platform_add', opts, function(err) { if (err) { if (callback) callback(err); else throw err; } else { if (callback) callback(); } }); });
这个函数是使用的node的nCallbacks插件,https://npmjs.org/package/ncallbacks
官方文档解释是function that executes n times,在上面这段代码中意思就是,end函数只能被执行targets.length次,调用超过targets.length次再调用end,其内部函数也不会再被执行,其实就是限制次数,避免当平台列表中为空后还误执行