46 lines
1.3 KiB
JavaScript
Executable File
46 lines
1.3 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
const path = require('path');
|
|
const { execSync } = require('child_process');
|
|
|
|
// Получаем подкоманду и дополнительные аргументы
|
|
const [,, command, ...args] = process.argv;
|
|
|
|
// Функция для выполнения команды
|
|
function runCommand(cmd) {
|
|
try {
|
|
execSync(`${cmd} ${args.join(' ')}`, { stdio: 'inherit' });
|
|
} catch (error) {
|
|
console.error(`Error running command: ${cmd}`);
|
|
console.error(error.message);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
// Определение пути к конфигурации
|
|
const configs = {
|
|
dev: path.resolve(__dirname, '../bundler/webpack.dev.js'),
|
|
prod: path.resolve(__dirname, '../bundler/webpack.prod.js'),
|
|
staging: path.resolve(__dirname, '../bundler/webpack.staging.js'),
|
|
};
|
|
|
|
// Обработка подкоманд
|
|
switch (command) {
|
|
case 'dev':
|
|
runCommand(`webpack --config ${configs.dev}`);
|
|
break;
|
|
case 'prod':
|
|
runCommand(`webpack --config ${configs.prod}`);
|
|
break;
|
|
case 'staging':
|
|
runCommand(`webpack --config ${configs.staging}`);
|
|
break;
|
|
case 'watch':
|
|
runCommand(`webpack serve --config ${configs.dev}`);
|
|
break;
|
|
default:
|
|
console.error(`Unknown command: ${command}`);
|
|
console.error('Available commands: dev, prod, staging, watch');
|
|
process.exit(1);
|
|
}
|