webpack 4代码拆分如何工作?是否有一个隐藏代码为下一个块发出http请求?

问题描述 投票:1回答:2

我试图了解Webpack 4代码分割是如何工作的。是否有一个隐藏代码为下一个块发出http请求?

后续问题:如果我在login.js(登录页面)和app.js(实际应用程序)之间拆分代码,是否可以拦截来自login.js的呼叫以获取下一个块,并且基于成功的身份验证与否,提供app。 js如果成功或者在验证失败时提供error.js?

webpack chunks webpack-4 code-splitting
2个回答
0
投票

Webpack v4有最新的升级。以前如果我们进行代码拆分,你可以在浏览器的devTools中看到initiator中的main.bundle.js的*(index)*,这意味着index.html要求main.bundle.js。之后所有脚本都从bootstrap_a877加载.... (脚本)这是负责异步加载文件的Webpack脚本。使用Webpack的动态导入功能时,此脚本会自动添加到构建中。

但是在webpack v4中我们有runtimeChunk,它实际上成了所有bundle的发起者。您可以在开发工具中看到它。它通常基于路线。

为了更好地进行代码拆分,像这样构建组件,如果身份验证失败,您应该路由到下一个路由,这样就不会动态导入。

我希望这会有所帮助。


0
投票

我试图了解Webpack 4代码分割是如何工作的。是否有一个隐藏代码为下一个块发出http请求?

是的,有webpack逻辑可以为我们处理。你根本不需要关心它。

如果我在login.js(登录页面)和app.js(实际应用程序)之间拆分代码,是否可以拦截来自login.js的下一个块的调用,并且基于成功的身份验证,如果成功或者提供app.js在验证失败时提供error.js?

根据你的方式,这是完全可能的。代码拆分是通过动态导入完成的,换句话说它的工作方式相同,但导入webpack的标志表示应该稍后下载。

动态导入需要@babel/plugin-syntax-dynamic-import。要标记为webpack,你import('path.to.file')你满意。这产生了一个你需要解决的承诺,并用它做任何你需要的事情。

© www.soinside.com 2019 - 2024. All rights reserved.