Created
January 24, 2019 23:13
-
-
Save Rikezenho/3df089c06372fe9ed0c69a55aa413d7a to your computer and use it in GitHub Desktop.
Script para varrer todos os package.json dos subdiretórios de uma pasta e listar as dependências
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const fs = require('fs'); | |
const path = require('path'); | |
const chalk = require('chalk'); | |
const figlet = require('figlet'); | |
const modulesPath = path.join(__dirname, '..', 'modules'); | |
const foldersWithPackages = fs.readdirSync(modulesPath).filter(folder => { | |
const fullPath = path.join(modulesPath, folder); | |
return fs.existsSync(path.join(fullPath, 'package.json')); | |
}); | |
const allPackages = {}; | |
foldersWithPackages.map(folder => { | |
const fullPath = path.join(modulesPath, folder); | |
const configPackage = require(path.join(fullPath, 'package.json')); | |
allPackages[folder] = { | |
devDeps: configPackage.devDependencies, | |
deps: configPackage.dependencies | |
}; | |
return folder; | |
}); | |
// console.log(allPackages); | |
const allDevDeps = {}; | |
Object.keys(allPackages).map(project => { | |
Object.keys(allPackages[project].devDeps).map(dep => { | |
allDevDeps[dep] = Object.assign({}, allDevDeps[dep], { | |
[project]: allPackages[project].devDeps[dep] | |
}); | |
return dep; | |
}); | |
return project; | |
}); | |
// console.log(allDevDeps); | |
const allDeps = {}; | |
Object.keys(allPackages).map(project => { | |
Object.keys(allPackages[project].deps).map(dep => { | |
allDeps[dep] = Object.assign({}, allDeps[dep], { | |
[project]: allPackages[project].deps[dep] | |
}); | |
return dep; | |
}); | |
return project; | |
}); | |
// console.log(allDeps); | |
let finalText = ''; | |
finalText += `${figlet.textSync('DEVDEPS')}\r\n`; | |
Object.keys(allDevDeps).map(dep => { | |
finalText += `${chalk.cyan(dep)}\r\n`; | |
const repeats = {}; | |
Object.keys(allDevDeps[dep]).map(project => { | |
const version = allDevDeps[dep][project]; | |
if (repeats[version]) { | |
repeats[version].push(project); | |
} else { | |
repeats[version] = [project]; | |
} | |
return project; | |
}); | |
Object.keys(repeats).map(version => { | |
finalText += `${chalk.yellow( | |
`>> [${repeats[version].length}/${Object.keys(allPackages).length}]` | |
)} ${chalk.black.bgYellow(`${version}`)} => ${chalk.green(repeats[version].join(', '))}\r\n`; | |
return version; | |
}); | |
return dep; | |
}); | |
finalText += `${figlet.textSync('DEPS')}\r\n`; | |
Object.keys(allDeps).map(dep => { | |
finalText += `${chalk.cyan(dep)}\r\n`; | |
const repeats = {}; | |
Object.keys(allDeps[dep]).map(project => { | |
const version = allDeps[dep][project]; | |
if (repeats[version]) { | |
repeats[version].push(project); | |
} else { | |
repeats[version] = [project]; | |
} | |
return project; | |
}); | |
Object.keys(repeats).map(version => { | |
finalText += `${chalk.yellow( | |
`>> [${repeats[version].length}/${Object.keys(allPackages).length}]` | |
)} ${chalk.black.bgYellow(`${version}`)} => ${chalk.green(repeats[version].join(', '))}\r\n`; | |
return version; | |
}); | |
return dep; | |
}); | |
console.log(finalText); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Separados por:
Dependências: