面试——前端工程化篇(2026)
前端工程化主要解决什么问题? 它解决的是项目从开发、构建、测试、发布到监控的全流程效率和质量问题。 核心目标是让团队在规模变大后仍然能稳定交付、快速迭代、可回滚、可追踪。 2026 年前端工程化面试重点有哪些? 高频方向包括 Vite、Webpack、构建性能、产物优化、Monorepo、CI/CD、灰度发布、微前端和包管理。 面试更看重“为什么这么做”和“线上问题如何定位”,而不只是背配置项。 Vite 的核心思想是什么? 开发阶段利用浏览器原生 ESM 按需加载源码,避免每次启动都打完整包。 生产阶段仍会进行打包、压缩、Tree Shaking 和资源切分,保证线上加载效率。 Vite 为什么启动快? 它不需要先把整个项目 bundle 完再启动服务,而是先启动 dev server。 源码模块在浏览器请求时才转换,依赖则提前预构建并缓存。 Vite 开发环境和生产环境为什么不是同一套机制? 开发环境追求启动快、热更新快,所以基于 ESM 按需转换。 生产环境追求资源体积、缓存命中和加载性能,所以仍需要打包优化。 Vite 的依赖预构建是什么? ...
面试——webpack篇
webpack与grunt、gulp的不同? 三者都是前端构建工具,grunt和gulp在早期比较流行,现在webpack相对来说比较主流,不过一些轻量化的任务还是会用gulp来处理,比如单独打包CSS文件等。 grunt和gulp是基于任务和流(Task、Stream)的。类似jQuery,找到一个(或一类)文件,对其做一系列链式操作,更新流上的数据, 整条链式操作构成了一个任务,多个任务就构成了整个web的构建流程。 webpack是基于入口的。webpack会自动地递归解析入口所需要加载的所有资源文件,然后用不同的Loader来处理不同的文件,用Plugin来扩展webpack功能。 所以总结一下:gulp和grunt需要开发者将整个前端构建过程拆分成多个Task,并合理控制所有Task的调用关系 webpack需要开发者找到入口,并需要清楚对于不同的资源应该使用什么Loader做何种解析和加工 Grunt与Gulp的区别 书写方式:- grunt 运用配置的思想来写打包脚本,一切皆配置,所以会出现比较多的配置项,诸如option,src,dest等等。而且不同...





