我有一个用 Laravel 和 InertiaJS(VueJS) 编写的网站。它有60多个页面。InertiaJS将所有页面和组件存储在这三个文件中:/js/manifest.js
/js/vendor.js
/js/app.js
问题是这些文件的大小(特别是app.js
)变得如此巨大!app.js
大约是5 MB。
我删除了无用的插件和库,我也重构了我的代码,这一切都很干净。
当我只使用Laravel进行网页开发时,我可以在每个页面中加载javascript和css文件。所以页面的速度相当不错。但是当我迁移到VueJS时,它同时加载app.js和styles.css!它还在一个文件中提取所有样式,这并不理想。
此外,我使用CDN,GZIP压缩,SSR,他们没有帮助太多,以有更好的性能。
我想提取所有组件和页面到不同的javascript/css文件,并在需要时加载到自己的页面。
我该怎么做呢?
2条答案
按热度按时间wqnecbli1#
您可以使用Webpack将不同的组件和页面提取到不同的JavaScript和CSS文件中,然后可以在需要时使用动态导入来加载这些文件。
要使用webpack,您需要创建一个配置文件,告诉webpack应该提取哪些文件以及生成文件的输出路径。您还可以利用webpack的代码拆分功能来进一步优化文件的加载。
有关如何使用webpack的更多信息,您可以查看官方文档。此外,还有许多在线教程和指南可用于为Laravel和InertiaJS项目设置webpack。
设置webpack后,可以使用动态导入在需要时加载文件。例如,如果某个页需要特定组件,则可以动态导入该组件,而不是从app.js文件加载该组件。这将使该页的加载速度更快、效率更高。
2q5ifsrm2#
你是一次加载所有的页面吗?
我认为你可以尝试只在需要的时候加载组件。我们可以使用延迟加载并减少
app.js
。https://router.vuejs.org/guide/advanced/lazy-loading.html#with-webpack