如何使用webpack性能对象将js文件分解为vue cli 3中的块?

问题描述 投票:4回答:3

我使用vue cli v3完成了一个项目。在建立项目后,我看到了2个警告,即

warning

asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).

This can impact web performance.

Assets:

  js/chunk-vendors.2557157d.js (474 KiB)

warning

entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.

Entrypoints:

  app (617 KiB)

      js/chunk-vendors.2557157d.js

      css/app.821fcb13.css

      js/app.b5a47a94.js

现在经过检查,我看到如果我在webpack配置中添加以下内容

performance: {
maxEntrypointSize: 512000,
maxAssetSize: 512000
}

然后它会自动将js文件分成小块。现在在vue cli 3中没有webpack.config文件。

所以,如果您可以请指导如何实现这一点,以便文件在超过某个限制时自动分块,这将非常有用。

这是我看到的地方:https://github.com/webpack/webpack/issues/3486#issuecomment-397915908

期待你的回复。

P.S。:我读过this并尝试创建vue.config.js文件并在文件中添加以下内容

module.exports = {
  configureWebpack: {
    performance: {
    maxEntrypointSize: 512000,
    maxAssetSize: 512000
    }
  }
}

但它没有做任何事情。任何人都可以请帮助让我知道我应该怎么做,以确保我的js文件块不会超过建议的大小vue?

更新

根据Linus Borg的回答,我尝试将以下两个代码放在vue.config.js文件中。试试1:

module.exports = {
  configureWebpack: {
    splitChunks: {
            minSize: 10000,
            maxSize: 250000,
        }
  }
}

并尝试2:

module.exports = {
  configureWebpack: {
        splitChunks: {
            cacheGroups: {
                node_vendors: {
                    test: /[\\/]node_modules[\\/]/,
                    chunks: "all",
                    priority: 1
                }
            }
        }
  }
}

之后,当我构建我的项目进行生产时。我看到同样的警告,没有改变任何大小:https://i.imgur.com/7Hp7SXC.jpg似乎没有任何一个影响任何变化。有帮助吗?

webpack vue.js vue-cli
3个回答
6
投票

以下添加到我的vue.config.js文件中的是在为@vue / cli项目(版本3.0.4)执行npm run build时最终将所有供应商资产分块。

module.exports = {
  configureWebpack:{
    optimization: {
      splitChunks: {
        minSize: 10000,
        maxSize: 250000,
      }
    }
  }
}

隐藏警告

module.exports = {
  configureWebpack:{
    performance: {
      hints: false
    },
    optimization: {
      splitChunks: {
        minSize: 10000,
        maxSize: 250000,
      }
    }
  }
}

4
投票

您误解了您更改的设置,可能是因为您误读了您链接到的issu评论。

这些不是告诉webpack如何/何时分割块的限制,它们只定义限制,在控制台上显示警告,这就是全部。

你真正想要的是改变splitChunks的设置。不幸的是,为初学者设置这个选项非常复杂,所以我建议this article更好地理解它是如何工作的。

然而,本文未涉及的是,在最近的版本中,exerimental option中添加了一个新的splitChunksmaxSize

它应该是这样的:

configureWebpack: {
    optimization: {
        splitChunks: {
            minSize: 10000,
            maxSize: 250000,
        }
    }
}

请记住它是实验性的,因此更可靠的方法是通过使用splitChunks.cacheGroups手动将不同的依赖项放入不同的块中来配置splitchunks以创建不超过大小限制的块。


0
投票

这是我的配置文件,它适用于我的项目,请尝试一下。

module.exports = {
    configureWebpack: {
        performance: {
            hints: "warning", // enum
            maxAssetSize: 1048576, // int (in bytes),
            maxEntrypointSize: 1048576, // int (in bytes)
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.