webpack-builder-react-xd
Version:
小盾安全前端团队构建器
68 lines (54 loc) • 1.62 kB
JavaScript
const chalk = require('chalk');
const { getBuilderConfig } = require('../lib/hlper');
// 配置项
const builderConfig = getBuilderConfig();
if (!builderConfig) {
console.error(chalk.red('Error: 你必须在package.json中 添加builder-config配置, 具体配置请查看README'));
process.exit(1);
}
const args = process.argv.slice(2);
const scriptIndex = args.findIndex(
x => x === 'dev' || x === 'build'
);
const script = scriptIndex === -1 ? args[0] : args[scriptIndex];
let scriptPath;
if ([ 'dev', 'build' ].includes(script)) {
scriptPath = '../scripts/' + script;
} else {
console.log('Unknown script "' + script + '".');
process.exit(1);
}
if (args.includes('--micro')) {
const microIndex = args.findIndex(v => v === '--micro');
const buildMircoMode = args.slice(microIndex + 1);
if (buildMircoMode.length > 1) {
console.log(chalk.red('--micro 命令之后只允许传入一个参数(要单独构建的文件名字),具体配置请查看README'));
process.exit(1);
}
process.env.MICRO = true;
process.MICRO_CONFIG = {
mode: buildMircoMode.length ? 'SINGLE' : 'UNITY',
name: buildMircoMode[0] || '',
};
}
if (args.includes('--profile')) {
process.env.PROFILE = true;
}
if (script === 'build') {
/**
* 生产环境 三种情况
* 1. 开发环境 dev
* 2. 测试环境 test
* 3. 线上环境 prod
*/
// 默认线上
process.env.prod_env = 'prod';
if (args.includes('--dev')) {
process.env.prod_env = 'dev';
}
if (args.includes('--test')) {
process.env.prod_env = 'test';
}
}
require(scriptPath);