cc-core-cli
Version:
Command Line Interface tool for generating project templates for the (Your Platform's Name) platform.
35 lines (26 loc) • 1.07 kB
JavaScript
const fs = require("fs-extra");
const ora = require("ora");
const { exec } = require("child_process");
const mainPath = "./src/modules";
const moduleDependencies = [];
const spinner = ora("Checking module dependencies").start();
const modules = fs.readdirSync(mainPath);
for (const folder of modules) {
if (!fs.lstatSync(`${mainPath}/${folder}`).isDirectory()) continue;
if (!fs.existsSync(`${mainPath}/${folder}/module.json`)) continue;
const moduleConfig = require(`${mainPath}/${folder}/module.json`);
if (!moduleConfig.dependencies) continue;
for (const lib in moduleConfig.dependencies) {
moduleDependencies.push(`${lib}@${moduleConfig.dependencies[lib]}`);
}
}
spinner.succeed("Checking module depencies done.");
if (!moduleDependencies.length) return true;
spinner.start(`Install module dependencies`);
exec(`npm install --no-save ${moduleDependencies.join(" ")}`, err => {
if (err) {
return spinner.fail(`Install module dependencies failed ${err.message}`);
}
spinner.succeed("Install module dependencies done.");
return true;
});