vue-cli如何正确关闭prefetchprefetch和preload

webpack4.6.0+新增了对prefetching和preloading的支持

通过在声明导入时使用内联指令可以让webpack输出"Resource Hint",告诉浏览器

javascript 复制代码
import(/* webpackPrefetch: true */ 'LoginModal');
import(/* webpackPreload: true */ 'ChartingLibrary');
  • prefetch:用来告诉浏览器在页面加载完成后,利用空闲时间提前获取用户未来可能会访问的内容
  • preload:用来指定页面加载后很快会被用到的资源,所以在页面加载的过程中,我们希望在浏览器开始主体渲染之前尽早 preload

路由懒加载

结合 Vue 的异步组件和 Webpack 的代码分割功能,轻松实现路由组件的懒加载

javascript 复制代码
const Foo = () => import('./Foo.vue')

const router = new VueRouter({
  routes: [
    { path: '/foo', component: Foo }
  ]
})

可以通过内联指令设置chunkname将所有组件都打包在同个异步块 (chunk) 中

javascript 复制代码
const Foo = () => import(/* webpackChunkName: "group-foo" */ './Foo.vue')
const Bar = () => import(/* webpackChunkName: "group-foo" */ './Bar.vue')
const Baz = () => import(/* webpackChunkName: "group-foo" */ './Baz.vue')

如何关闭prefetch

Prefetch 链接将会消耗带宽。如果你的应用很大且有很多 async chunk,而用户主要使用的是对带宽较敏感的移动端,那么你可能需要关掉 prefetch 链接并手动选择要提前获取的代码区块

因为项目中用了路由懒加载,而且组件数量比较多,所以想着关掉会让首屏加载快些

javascript 复制代码
// vue.config.js
module.exports = {
  chainWebpack: config => {
    // 移除 prefetch 插件
    config.plugins.delete('prefetch')

    // 或者
    // 修改它的选项:
    config.plugin('prefetch').tap(options => {
      options[0].fileBlacklist = options[0].fileBlacklist || []
      options[0].fileBlacklist.push(/myasyncRoute(.)+?\.js$/)
      return options
    })
  }
}

然而

设置之后没有效果,preload和prefetch后面有个index,于是就换下名字再次尝试

javascript 复制代码
config.plugins.delete('prefetch-index').delete('preload-index');

最后终于生效了,为什么会这样呢,看看源码怎么写的
node_modules/@vue/cli-service/lib/config/app.js

javascript 复制代码
webpackConfig
  .plugin(`preload-${name}`)
     .use(PreloadPlugin, [{
       rel: 'preload',
       includeHtmlNames: [filename],
       include: {
         type: 'initial',
         entries: [name]
       },
       fileBlacklist: [/\.map$/, /hot-update\.js$/]
     }])

webpackConfig
  .plugin(`prefetch-${name}`)
    .use(PreloadPlugin, [{
      rel: 'prefetch',
      includeHtmlNames: [filename],
      include: {
        type: 'asyncChunks',
        entries: [name]
      }
    }])
})

vue-cli如何正确关闭prefetch - 灰信网(软件开发博客聚合)

相关推荐
pan_junbiao3 分钟前
Whistle 抓包工具的安装与使用
前端·测试工具·压力测试·抓包
Cory.眼10 分钟前
前端调用后端接口全流程实战
前端·调用接口
云水一下12 分钟前
TypeScript 从零基础到精通(四):面向对象编程(类与继承)
javascript·typescript
牛栓柱16 分钟前
【后端实战】用 Supabase + React/TS 零成本构建高并发 Multi-Agent 服务
前端·数据库·人工智能·后端·react.js·前端框架
木斯佳19 分钟前
前端八股文面经大全:百度-Agent部门-前端一面(2026-06-04)·面经深度解析
前端
shmily麻瓜小菜鸡20 分钟前
Bootstrap 4 常用工具类速查表
前端·javascript·bootstrap
CDN36021 分钟前
【架构进阶】告别配置漂移!用 NodeNext + Workspace 打造优雅的 TypeScript Monorepo
前端·javascript·typescript
协享科技27 分钟前
前端 SSE 流式响应处理实践:从接收、解析到渲染
前端·人工智能·程序人生·go·ai编程·sse
超人不会飞_Jay34 分钟前
6.2前端笔记
前端·javascript·笔记
鹏大师运维36 分钟前
统信UOS安装Subtitle Edit并使用Edge-TTS生成AI语音教程
linux·前端·人工智能·edge·麒麟·统信uos·ai语音