【问题标题】:Vendors.js has a large file size on buildVendors.js 在构建时文件很大
【发布时间】:2020-03-22 15:58:50
【问题描述】:

我使用 npx nuxt-create-app 使用 Nuxt.js 启动了一个项目,并在出现提示时添加以下内容:

  • Vuetify.js
  • Axios
  • PWA

命令完成后,我运行npm run generate 并得到以下输出:

Version: webpack 4.42.0
Time: 50481ms
Built at: 03/22/2020 3:50:44 AM
                         Asset       Size  Chunks                                Chunk Names
../server/client.manifest.json     14 KiB          [emitted]
       347edfc8c71f21607d82.js   19.3 KiB       2  [emitted] [immutable]         pages_index
       36edf39aed940985958a.js    169 KiB       1  [emitted] [immutable]         commons.app
       8a4f26db9171c6d3e52c.js    4.3 KiB       6  [emitted] [immutable]
       955eec4fff786128890e.js   2.35 KiB       4  [emitted] [immutable]         runtime
                      LICENSES  389 bytes          [emitted]
       a8167919c00ee96e3ace.js  817 bytes       3  [emitted] [immutable]         pages_inspire
       b80f759242c3c8480088.js    405 KiB       5  [emitted] [immutable]  [big]  vendors.app
       b8dd601015ecae11904a.js     49 KiB       0  [emitted] [immutable]         app
     icons/icon_120.5f6a36.png   4.68 KiB          [emitted]
     icons/icon_144.5f6a36.png    5.8 KiB          [emitted]
     icons/icon_152.5f6a36.png    6.1 KiB          [emitted]
     icons/icon_192.5f6a36.png   7.83 KiB          [emitted]
     icons/icon_384.5f6a36.png   18.1 KiB          [emitted]
     icons/icon_512.5f6a36.png     20 KiB          [emitted]
      icons/icon_64.5f6a36.png   2.35 KiB          [emitted]
        manifest.47b2f596.json  810 bytes          [emitted]
 + 2 hidden assets
Entrypoint app = 955eec4fff786128890e.js 36edf39aed940985958a.js b80f759242c3c8480088.js b8dd601015ecae11904a.js

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets:
  b80f759242c3c8480088.js (405 KiB)

我更改了nuxt.conf.js 来拆分文件:

  build: {
    /*
    ** You can extend webpack config here
    */

   analyze: true,
    extend (config, {isClient}) {
      if (isClient){
        config.optimization.splitChunks.maxSize = 200000;
      }
    }
  }

但我想知道的是

  1. 即使文件更小,客户端是否仍需要下载总文件大小?又怎样 代码拆分有帮助吗?
  2. 除了代码拆分之外,我还能做些什么来减小整体大小,因为这只是 我的项目已经这么大了?

【问题讨论】:

    标签: webpack vuetify.js nuxt.js


    【解决方案1】:

    实施这两个策略将大大减少加载时间。

    建议:

    1. 使用 gzip/brotli 压缩压缩和压缩包。这将大大减少捆绑包的大小。 (checkout this)

    2. 基于路由/基于组件的代码拆分(我在 React 项目中使用过)

    答案:

    1. 是的。但是如果你压缩它并且它的代码被拆分,它只有在需要时才会被提取。
    2. 阅读建议 1

    【讨论】:

      猜你喜欢
      • 2017-06-17
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      • 2021-09-28
      • 1970-01-01
      相关资源
      最近更新 更多