我正在使用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
package.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
是的。 WebPack规则仅描述要使用的加载程序链。任何方式都包含纯JS代码。有许多原因可让您从捆绑销售商品中排除供应商代码,例如:
WebPack提供了不同的方法:
WebPack的默认值为chunk optimizator。在大多数情况下,这足以获得良好的结果。仅当遇到一些实际问题并了解要执行的操作时,才应进行其他一些手动优化。