Files
WMS/scripts/build-modules.mjs
T

45 lines
1.2 KiB
JavaScript
Executable File

import fs from 'node:fs';
import path from 'node:path';
import { execFileSync } from 'node:child_process';
const modulesDir = path.resolve('Modules');
const npmCli = process.env.npm_execpath;
if (!npmCli || !path.isAbsolute(npmCli) || !fs.existsSync(npmCli)) {
throw new Error('npm_execpath must reference an existing absolute npm CLI path.');
}
for (const moduleName of fs.readdirSync(modulesDir)) {
const modulePath = path.join(modulesDir, moduleName);
if (!fs.statSync(modulePath).isDirectory()) {
continue;
}
const packageJson = path.join(modulePath, 'package.json');
const viteConfig = path.join(modulePath, 'vite.config.js');
if (!fs.existsSync(packageJson) || !fs.existsSync(viteConfig)) {
console.log(`Skipping ${moduleName}`);
continue;
}
console.log(`Building ${moduleName}`);
try {
execFileSync(
process.execPath,
[npmCli, 'run', 'build'],
{
cwd: modulePath,
stdio: 'inherit',
env: { ...process.env, PATH: '/usr/bin:/bin' },
}
);
} catch (error) {
console.error(`Failed building ${moduleName}`);
process.exit(1);
}
}