mirror of
https://github.com/grafana/grafana.git
synced 2025-01-11 00:22:06 -06:00
9688d5b56b
* build(webpack): add a stats config and build:stats script for analysing bundles locally * chore(yarn): dedupe lock file * feat(webpack): use bundle analyser by default, env vars for additional plugins
36 lines
946 B
JavaScript
36 lines
946 B
JavaScript
const { RsdoctorWebpackPlugin } = require('@rsdoctor/webpack-plugin');
|
|
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
|
|
const { merge } = require('webpack-merge');
|
|
|
|
const prodConfig = require('./webpack.prod.js');
|
|
|
|
module.exports = (env = {}) => {
|
|
const config = { plugins: [new BundleAnalyzerPlugin()] };
|
|
|
|
// yarn build:stats --env doctor
|
|
if (env.doctor) {
|
|
config.plugins.push(
|
|
new RsdoctorWebpackPlugin({
|
|
supports: {
|
|
// disable rsdoctor bundle-analyser
|
|
generateTileGraph: false,
|
|
},
|
|
})
|
|
);
|
|
}
|
|
|
|
// disable hashing in output filenames to make them easier to identify
|
|
// yarn build:stats --env doctor --env namedChunks
|
|
if (env.namedChunks) {
|
|
config.optimization = {
|
|
chunkIds: 'named',
|
|
};
|
|
config.output = {
|
|
filename: '[name].js',
|
|
chunkFilename: '[name].js',
|
|
};
|
|
}
|
|
|
|
return merge(prodConfig(env), config);
|
|
};
|