landers.gulp-helper
Version:
landers.gulp-helper
42 lines (38 loc) • 1.42 kB
JavaScript
let fs = require('fs');
let log = require('./log');
module.exports = {
parsePackageJsonPath: function(package_dot_json_path){
if (!fs.existsSync(package_dot_json_path)) return [];
var content = fs.readFileSync(package_dot_json_path);
var data = JSON.parse(content);
var dependencies = data.dependencies;
return dependencies ? Object.keys(dependencies) : [];
},
getPackages: function(package){
var package_dot_json_path = './node_modules/' + package + '/package.json';
return this.parsePackageJsonPath(package_dot_json_path);
},
getCurrentPackages: function(){
return this.parsePackageJsonPath('./package.json');
},
getRecursionPackages: function(packages){
var that = this;
return packages.map(function(package){
var packages = that.getPackages(package);
if (packages.length) {
packages = that.getRecursionPackages(packages);
packages.push(package);
return packages;
} else {
return package;
}
});
},
getCurrentRecursionPackages: function(){
// 后处理常规
var packages1 = this.getCurrentPackages();
var packages2 = this.getRecursionPackages(packages1);
var result = packages2.concat(packages1);
return result.flatten().unique();
}
}