问题描述
由于各种原因,我们有一个相当特殊的解决方案,其中带有与 Vue SSR 前端捆绑在一起的 epi 后端。 前端 nodejs 服务器只提供 SSR,不用作 web 服务器。 这意味着不使用前端路由,并且每次页面加载时都会重新加载和设置页面。
截至目前,所有组件(例如一百个外延块和页面)都已在全球注册,因为我们不知道何时何地需要它们。 这当然会创建一个不必要的大型 js 包,其中 90% 的代码从未使用过。
我的问题是; 在我们完全重建解决方案之前(为了未来的无头外延支持),有没有办法拆分组件并仅动态加载每个页面加载所需的组件?
据我了解(以及我的测试),您不能在不使用路由的情况下将动态导入的组件与 Vue SSR 一起使用。
例如,我希望每个组件都是一个单独的文件,以便它们可以被缓存并保持初始页面加载较小。或者如果有人有更好的建议 =)
解决方法
我们做了一些与网络包捆绑类似的事情。我们读取内容区域内的块,然后使用 webpack-import-glob-loader 和 terser-webpack-plugin 捆绑并加载这些块。