webpack-genius
Version:
**For chinese developers:** you'd better add taobao mirror before everything start. Or you may fail to install. ```bash yarn config set registry http://registry.npm.taobao.org ```
46 lines (45 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setOptimizationAfter = exports.setOptimization = void 0;
var tslib_1 = require("tslib");
var terser_webpack_plugin_1 = tslib_1.__importDefault(require("terser-webpack-plugin"));
exports.setOptimization = function (config, webpack) {
config.nodeEnv = webpack.getEnvironment();
if (webpack.isHot()) {
config.removeAvailableModules = false;
config.removeEmptyChunks = false;
config.splitChunks = {};
}
else {
config.runtimeChunk = true;
config.minimize = true;
config.minimizer = [];
config.splitChunks = {
chunks: 'all',
cacheGroups: {
vendors: {
test: /[\\/]node_modules[\\/]/,
priority: -10,
chunks: 'all',
},
default: {
minChunks: 2,
chunks: 'all',
priority: -20,
reuseExistingChunk: true,
},
},
};
}
};
exports.setOptimizationAfter = function (uglifyConfig, optimization, genius) {
var options = uglifyConfig || {};
var devtool = genius.getConfig().devtool;
if (devtool !== undefined && devtool !== false && options.sourceMap === undefined) {
options.sourceMap = true;
}
if (optimization.minimize) {
optimization.minimizer = optimization.minimizer || [];
optimization.minimizer.push(new terser_webpack_plugin_1.default(uglifyConfig));
}
};