32 lines
884 B
JavaScript
32 lines
884 B
JavaScript
import { existsSync, readdirSync, statSync } from 'node:fs';
|
|
import { join } from 'node:path';
|
|
import { execFileSync } from 'node:child_process';
|
|
|
|
const modulesDirectory = join(process.cwd(), 'Modules');
|
|
|
|
if (!existsSync(modulesDirectory)) {
|
|
process.exit(0);
|
|
}
|
|
|
|
for (const moduleName of readdirSync(modulesDirectory).sort()) {
|
|
const moduleDirectory = join(modulesDirectory, moduleName);
|
|
|
|
if (!statSync(moduleDirectory).isDirectory()) {
|
|
continue;
|
|
}
|
|
|
|
const lockFile = join(moduleDirectory, 'package-lock.json');
|
|
const packageFile = join(moduleDirectory, 'package.json');
|
|
|
|
if (!existsSync(lockFile) || !existsSync(packageFile)) {
|
|
continue;
|
|
}
|
|
|
|
console.log(`[modules] Installing ${moduleName} dependencies`);
|
|
|
|
execFileSync('npm', ['ci', '--no-audit', '--no-fund'], {
|
|
cwd: moduleDirectory,
|
|
stdio: 'inherit',
|
|
});
|
|
}
|