几年前我创建了一个 vue 项目,我总是"觉得"第一次加载太慢了。我花了一段时间才意识到整个应用程序都在第一页加载,比如"/"。
我尝试按照说明(https://router.vuejs.org/guide/advanced/lazy-loading.html#lazy-loading-routes(进行操作,但第一次加载仍然只会加载整个应用程序。
我的项目越来越大,我虽然它的设计有问题,但是在使用 vuejs 的时间更长之后,从这个角度来看,一切似乎都很好。
所以今天我决定修复它。为此,我尽可能地简化了项目,以便复制它。我能够做到。
问题是,即使我使用以下语法:() => import(/* webpackChunkName: "ThisShouldNotBeLoaded" */ '../components/Fail.vue')
每当我请求不需要该模块的路由时,都会加载该模块(开发工具 =>检查 => 网络,你会看到它"通过"网络(。
我不明白的是,如果这是一个 vuejs 问题、设计问题、webpack 问题甚至其他问题,也许是依赖项导致了这种情况,不知道去哪里看。
好消息是我能够复制它。这可能是一个问题,但我不知道在哪里(webpack,vuejs,vue-cli等(。
如果您有 5 分钟的时间,请克隆此存储库,看看您是否了解正在发生的事情。
谢谢!
回购:https://github.com/nriesco/vuex-router-webpack-test
这个问题的解决方案在这里: https://github.com/vuejs/vue-cli/issues/979#issuecomment-373027130
创建此项目时,我选择了"PWA"选项,该选项以某种方式覆盖了任何库延迟加载。
我尝试删除包(npm remove @vue/cli-plugin-pwa
(,但正如上一个链接中所述,通过在创建时选择 PWA,项目将配置为使用预取。
因此,将其添加到我的vue.config.js
文件中可以解决此问题:
chainWebpack: (config) => {
config.plugins.delete('prefetch')
}
代码在这里:https://github.com/nriesco/vuex-router-webpack-test/blob/master/vue.config.js#L6-L8