mirror of https://github.com/grafana/grafana
Frontend: Add build:stats for analysing bundles (#94729)
* 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 pluginspull/97639/head
parent
3190c29ec4
commit
9688d5b56b
@ -0,0 +1,35 @@ |
||||
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); |
||||
}; |
||||
Loading…
Reference in new issue