如何确保node_modules不包含在包中

问题描述 投票:0回答:1

我正在使用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的结果enter image description here因此,node_modules是否包含在我的捆绑软件中,还是我做错了什么?

亲切的问候/ K

reactjs webpack bundle webpack-bundle-analyzer
1个回答
0
投票

是的。 WebPack规则仅描述要使用的加载程序链。任何方式都包含纯JS代码。有许多原因可让您从捆绑销售商品中排除供应商代码,例如:

  • 重建时间优化
  • 最佳缓存

WebPack提供了不同的方法:

WebPack的默认值为chunk optimizator。在大多数情况下,这足以获得良好的结果。仅当遇到一些实际问题并了解要执行的操作时,才应进行其他一些手动优化。

© www.soinside.com 2019 - 2024. All rights reserved.