UNPKG

landers.gulp-helper

Version:

landers.gulp-helper

42 lines (38 loc) 1.42 kB
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(); } }