68 lines
2.1 KiB
TypeScript
68 lines
2.1 KiB
TypeScript
const {exec, Packages, writeJsonFile} = require('./tool');
|
|
const {plugins, allPackage, mainPackage, npmPackage} = Packages;
|
|
const pkg = require('../../package.json');
|
|
|
|
|
|
// plugins 'main' 'npm' 可选
|
|
// npm run build: 默认build 全部
|
|
// npm run build main poly npm: build三个
|
|
|
|
|
|
async function main () {
|
|
const version = modVersion();
|
|
const webpack = 'node ./node_modules/webpack/bin/webpack.js --config ';
|
|
const buildPlugin = 'webpack-config/build.plugin.js --env.pluginname=';
|
|
const buildMain = `${webpack}webpack-config/build.js`;
|
|
const buildNpm = `node ./helper/scripts/build-npm.js`;
|
|
let cmds = [];
|
|
let cmdConsole = [];
|
|
const packages = process.argv.slice(3);
|
|
|
|
packages.forEach(package => {
|
|
if (plugins.includes(package) || package === allPackage) {
|
|
cmds.push(`${webpack} ${buildPlugin}${package}`);
|
|
cmdConsole.push(package);
|
|
} else if (package === mainPackage) {
|
|
cmds.push(buildMain);
|
|
cmdConsole.push(mainPackage);
|
|
} else if (package === npmPackage) {
|
|
cmds.push(buildNpm);
|
|
cmdConsole.push(npmPackage);
|
|
}
|
|
});
|
|
if (cmds.length === 0) {
|
|
cmds = [
|
|
buildMain,
|
|
...plugins.map(plugin => `${webpack} ${buildPlugin}${plugin}`),
|
|
`${webpack} ${buildPlugin}${allPackage}`,
|
|
buildNpm
|
|
];
|
|
cmdConsole = [
|
|
mainPackage,
|
|
...plugins,
|
|
allPackage,
|
|
npmPackage
|
|
];
|
|
}
|
|
console.log(`Start Building(version = ${version})... [0/${cmds.length}]`);
|
|
for (let i = 0; i < cmds.length; i++) {
|
|
const result = await exec(cmds[i]);
|
|
if (!result.success) {
|
|
console.log(result.stderr);
|
|
return;
|
|
}
|
|
console.log(`${cmdConsole[i]} build success. [${i + 1}/${cmds.length}]`);
|
|
}
|
|
console.log('Finished!');
|
|
}
|
|
|
|
function modVersion () {
|
|
const version = process.argv[2];
|
|
if (version) {
|
|
pkg.version = version;
|
|
writeJsonFile('/package.json', pkg);
|
|
}
|
|
return version;
|
|
}
|
|
|
|
main(); |