【问题标题】:How to correct "preload key requests" performance problem on lighthouse with vue-cli and vue.config.js如何使用 vue-cli 和 vue.config.js 纠正灯塔上的“预加载密钥请求”性能问题
【发布时间】:2021-01-20 03:23:49
【问题描述】:

我使用 Vue-CLI 构建我的 vue.js 项目。

当我使用 lighthouse 时,我看到了很大的性能机会:“预加载密钥请求”并带有以下警告:

  • 为“.../js/chunk-vendors.505a9ffc.js”找到了预加载,但浏览器未使用该预加载。检查您是否正确使用了crossorigin 属性。
  • 为“.../js/app.a1661204.js”找到了预加载,但浏览器未使用该预加载。检查您是否正确使用了crossorigin 属性。
  • 为“.../css/chunk-vendors.89b73702.css”找到了预加载,但浏览器未使用该预加载。检查您是否正确使用了crossorigin 属性。
  • 为“.../css/app.9ea691b0.css”找到了预加载,但浏览器未使用该预加载。检查您是否正确使用了crossorigin 属性。

有没有人用 Vue-CLI 和 vue.config.js 来修改 webpack 配置的解决方案?

你能解释一下这个问题吗?

【问题讨论】:

  • 生成的index.html长什么样子?
  • 对于每个 js 文件,有一个 preload 和一个脚本模块,其中 crossoriginn="anonymous" ... ...
  • 所以这实际上是Modern Mode build...
  • 啊,是的,我明白了。所以我必须将 crossorigin 选项放到“use-credentials”中。这样对吗?我该如何解决这个问题?

标签: javascript vue.js webpack vue-cli lighthouse


【解决方案1】:

你应该可以在 webpack 配置文件中配置crossOriginLoading

module.exports = {
  //...
  output: {
    crossOriginLoading: 'anonymous'
  }
};

不确定你是否有单独的 webpack 配置文件,但如果你使用默认的 vue.config.js 文件,你可以使用 configureWebpack 选项:

module.exports = {
  configureWebpack: {
    output: {
        crossOriginLoading: 'anonymous'
    },
    ...
  }
}

【讨论】:

【解决方案2】:

我用过 preload-webpack-plugin (https://www.npmjs.com/package/preload-webpack-plugin)

const PreloadWebpackPlugin = require('preload-webpack-plugin');

// adds <style> tag with preload
module.exports = {
  ...,
  plugins: [
    ...,
    new PreloadWebpackPlugin({
        rel: 'preload',
        as: 'style',
        include: ['main', 'profile', 'search'], // can be 'allChunks' or 'initial' or see more on npm page
        fileBlacklist: [/\.map|.js/], // here may be chunks that you don't want to have preloaded
    })
  ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2021-12-05
    相关资源
    最近更新 更多