顶顶顶😁
点赞 评论

相关推荐

优化Webpack的构建速度是一个常见的需求,下面是一些常见的优化策略:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=fffb9e7b5576495f90d9596c40989b9f通过配置缓存:可以使用cache-loader或者hard-source-webpack-plugin来启用缓存,避免重复编译没有改动的文件。通过配置多线程/并行构建:可以使用thread-loader或者happypack来在多个工作线程中并行处理任务,加快构建速度。减少文件的解析和处理:可以通过配置resolve.extensions来减少Webpack的文件解析,只处理特定格式的文件。另外,使用include和exclude选项来限制需要处理的文件范围。优化Loader的配置:可以使用exclude选项来排除不必要的目录,只对需要处理的目录使用对应的Loader。另外,可以使用resolve.alias来配置别名,减少模块查找时间。使用Tree Shaking:通过配置mode为production,并且在package.json中将sideEffects设置为false或者具体的文件列表,开启Tree Shaking功能,剔除掉未使用的代码。合理使用Webpack的插件:根据具体需求,合理选择和配置Webpack的插件,避免不必要的处理和压缩。使用DllPlugin和缓存:可以将一些不经常变动的库使用DllPlugin预先编译,并将结果文件缓存起来,这样可以避免每次构建都重新编译这些库。以上是一些常见的Webpack构建速度优化策略,根据具体的项目需求和情况选择合适的优化方式。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
10-28 20:53
已编辑
山东青客网络_CEO
比如:简历里有一句 “使用持久化存储去解决首屏加载和用户体验问题。”【描述背景】在xxxx这个项目里,业务希望首屏加载更快,我去做了一个让首屏加载更快的方案。【描述行动】接到这个任务以后我在网上进行调研,一开始接到了集中方法,第一种是使用服务端渲染第二种使用骨架图的方案第一种服务端渲染需要服务端来跟进支持,还需要用到特殊的技术方案(这里要准备好调研的技术方案,面试官问的时候别傻了),目前这个优化只分配了前端进行改造,所以没有使用。第二种方案使用骨架图可以让页面先显示框架,再慢慢渲染实际内容,这样虽然用户感受会好一些,但是治标不治本,渲染总时长和以前是一样的。经过我的调研,我们项目首屏加载速度慢的只要原因是两个,一是JS解析执行的时间,二是React(vue)渲染的时间,然后我们的项目首页的数据不需要非常的实时精确的更新,所以我想到一个方案。【提出解决方案】每次渲染完首页后,我将首页所有的HTML代码存储到LocalStorage中,当页面进来的时候,我首先从LocalStorage中获取HTML代码数据先贴到HTML中,让用户可以先看到首页的内容和行动点,这样解决用户第一次进来速度慢的问题。【提出遇到的问题】解决这个问题需要考虑几个点:第一是读取LocalStorage插入HTML的这个代码要在所有代码之前运行第二是确保LocalStorage的存储内容的大小不能超过浏览器的限制第三是要确保HTML加载进来的时候样式也要存在【给出解决方案】我们使用的框架是UMI,使用umi的配置中的 scripts 参数,添加额外的JS代码,来解决第一个问题。(不同脚手架方法不一样)我们只将首屏最核心的xxxxx部分进行了代码存储,这部分的代码结构我们进行了精简,确保在100k以内。我们把这部分代码的css写成了行内样式,确保这些样式正确渲染。如果大家想要用以上内容作为简历和面试内容,我建议大家自己实践一下,做一遍这样的功能。你会发现更多值得一提的点。
点赞 评论 收藏
分享
Webpack的Tree Shaking是一个用于删除代码中未被引用的未使用代码的优化技术。它可以显著减小打包后的文件体积,提高网页加载速度。要配置Webpack实现代码的无用代码剔除,需要进行以下几个步骤:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=fffb9e7b5576495f90d9596c40989b9f确保你的代码是使用ES6模块语法编写的,而不是CommonJS(require)语法。因为Tree Shaking只对ES6模块有效。在Webpack配置文件中,通过设置mode为production,启用Webpack的生产模式,此时Tree Shaking功能会默认开启。确保你的package.json文件中的sideEffects字段被正确配置。sideEffects字段告诉Webpack哪些文件是没有副作用的,可以进行Tree Shaking。如果你的应用是纯粹的JavaScript应用,可以将sideEffects设置为"sideEffects": false。如果你的应用使用了一些有副作用的模块(例如CSS文件),你需要将这些模块添加到sideEffects字段中。这样Webpack就不会将这些有副作用的模块进行Tree Shaking。需要注意的是,Tree Shaking只适用于ES6模块语法,并且只能剔除未引用的代码,不能剔除被动态引用的代码(例如通过字符串拼接生成模块路径)。另外,一些特定的代码结构可能会导致Tree Shaking失效,例如使用eval、with等特殊语法。配置完成后,运行Webpack打包构建,未被引用的代码将会被删除,从而减小文件体积。
2024-11-12
在牛客打卡267天,今天也很努力鸭!
点赞 评论 收藏
分享
牛客网
牛客企业服务