我正在使用 webpack-bundle-analyzer 来识别可能需要优化的包。我的 webpack 配置不包括node_modules
webpack.config
config.module = {
rules: [
{
test: /\.(js|jsx)$/,
exclude: [
/node_modules/,
/firebase-functions/,
/tests/
],
use: {
loader: 'babel-loader'
}
},
...
}]
}
当我查看我的捆绑包的表示时,我仍然可以看到node_modules
,这是否意味着node_modules
包含在我的捆绑包中?
我首先运行yarn run build:stats
生成compilation-stats.json
然后yarn run analyse
包.json
"scripts": {
"build:prod": "cross-env NODE_ENV=production webpack -p --env production",
"dev-server": "cross-env NODE_ENV=development ANALYSE_BUNDLE=no webpack-dev-server --host 127.0.0.1 --port 8080",
"dev-server-analyse": "cross-env NODE_ENV=development ANALYSE_BUNDLE=yes webpack-dev-server --host 127.0.0.1 --port 8080",
"build:stats": "cross-env NODE_ENV=production webpack --profile --json --env=production > compilation-stats.json",
"analyse": "webpack-bundle-analyzer compilation-stats.json dist",
我也试图指示不包括
node_modules
webpack.config
new BundleAnalyzerPlugin({
excludeAssets: ['node_modules'],
statsOptions: {
exclude: /node_modules/
}
})
webpack-bundle-analyzer 的结果
那么,是node_modules
包含在我的包中还是我只是做错了什么?
亲切的问候/K