代码拆分在 Vue-CLI 生成的项目上无法正常工作



几年前我创建了一个 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

相关内容

  • 没有找到相关文章

最新更新