40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
const process = require("process");
|
|
const config = require("./webpack.config");
|
|
const moduleAlias = require("module-alias");
|
|
const webpackPackageName = process.argv[2];
|
|
|
|
// This file is used instead of webpack-cli to allow testing with multiple webpack versions
|
|
|
|
if (!webpackPackageName) {
|
|
console.error("Usage: node runner.js (webpack4|webpack5)");
|
|
process.exit(1);
|
|
}
|
|
|
|
if (!/^webpack\d+$/.test(webpackPackageName)) {
|
|
console.error("Invalid webpack package name specified");
|
|
process.exit(2);
|
|
}
|
|
|
|
// The terser plugin in webpack4 imports "webpack/lib/RequestShortener", so we can't require the right webpack module
|
|
// name and use it straight away. By using module-alias we make "webpack" requirable.
|
|
moduleAlias.addAlias("webpack", webpackPackageName);
|
|
|
|
const webpack = require("webpack");
|
|
|
|
webpack(config, (err, stats) => {
|
|
if (err) {
|
|
console.error(err);
|
|
process.exit(3);
|
|
return;
|
|
}
|
|
|
|
console.log(stats.toString({
|
|
colors: true
|
|
}));
|
|
|
|
console.log("---");
|
|
|
|
if (stats.hasErrors()) {
|
|
process.exit(4);
|
|
}
|
|
}); |