Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack:使用预回迁下载的所有代码拆分块_Webpack_Vue.js - Fatal编程技术网

Webpack:使用预回迁下载的所有代码拆分块

Webpack:使用预回迁下载的所有代码拆分块,webpack,vue.js,Webpack,Vue.js,我有3个主代码分割块,main.x.js、0.x.js和1.x.js 我正在使用require.sure进行拆分,并且还尝试了用于拆分的新的simple Promise语法。代码拆分本身似乎工作得很好,3个块得到了输出,使用HTML可视化工具,我可以看到它们只包含我想要的代码 然而,当我打开应用程序的主页时,webpack似乎正在使用主页上的“预回迁”立即加载我所有的代码分割块。我可以在devtools中将此视为目的:预取0.js和1.js块。main.js已“正常”加载 然后,当我导航到需要0

我有3个主代码分割块,main.x.js、0.x.js和1.x.js

我正在使用require.sure进行拆分,并且还尝试了用于拆分的新的simple Promise语法。代码拆分本身似乎工作得很好,3个块得到了输出,使用HTML可视化工具,我可以看到它们只包含我想要的代码

然而,当我打开应用程序的主页时,webpack似乎正在使用主页上的“预回迁”立即加载我所有的代码分割块。我可以在devtools中将此视为目的:预取0.js和1.js块。main.js已“正常”加载

然后,当我导航到需要0.x.js的站点部分时,我可以看到chrome启动了一个“普通”请求来检索0.x.js。因此,似乎拆分和运行时加载(某种程度上)工作正常

但是,我不希望出现这种预取行为,因为我首先使用代码拆分的原因是为了节省用户不使用的站点部分的带宽。有没有办法关闭这种预取行为


这是webpack 2.7.0的问题。

我在Sean的评论中意识到这不是webpack的问题后,找到了解决方案

“问题”是vue服务器渲染器CreateBundlerEnder函数,根据这里的文档,诀窍是shouldreload和shouldrefetch函数

只需添加:

shouldrefetch:(文件,类型)=>{
//0.js,1.js
返回false;
},
shouldPreload:(文件,类型)=>{
//main.js,manifest.js
返回true;

},
是您的
要求。请确保
在导入的文件的顶层调用,还是在稍后调用的函数中调用?(例如,
require.assure
何时调用?)嗨,肖恩,require.assure位于顶部,但我使用Vue的延迟加载()来(希望)仅在需要组件时加载它们。它确实感觉像是在网页包端,因为当我导航到使用该块的站点的某个部分时,我可以看到一个额外的“正常”请求,例如1.x.js,这让我认为出于某种原因,所有块都是在开始加载的,但在这个目的下的附加块:预取模式,这是我不想要的。我刚刚检查过,这与Vue服务器端渲染有关。如果我把它建成一个普通的温泉浴场,那么一切都很好。只有在我导航时,才会加载其他块(甚至没有目的:预取)。只有当我将其构建为vue SSR应用程序时,其目的是:预取应用于主页加载上的所有资源。也许有人能告诉我从哪里开始挖掘以发现问题?