前端工程化
从写代码到稳定交付:构建、规范、CI/CD 与 Monorepo · 共 12 篇
前端工程化 · 路线总览
前端工程化学习路线总览:从包管理、模块打包原理、Webpack/Vite、Babel/TS 编译,到代码规范、Git Hooks、CI/CD、产物优化、微前端与 Monorepo。以十年工程视角,讲清"写代码"到"稳定交付"之间那一整套机器。
01 · 包管理器
npm / yarn / pnpm 的差异与选型,lockfile 为什么必须提交,语义化版本(^ ~ *)的陷阱,依赖类型 dependencies/devDependencies/peerDependencies 的正确划分。
02 · 模块化与打包原理
打包器到底在做什么:从入口出发构建依赖图、转译、合并、拆分 chunk。理解 ESM/CJS 互操作、Tree-shaking 的前置条件、以及 source map 如何把压缩代码映射回源码。
03 · Webpack 核心
Webpack 的核心概念:entry/output/loader/plugin,loader 如何把非 JS 资源转成模块,plugin 在生命周期钩子上扩展能力,以及拆包(code splitting)与常见优化配置。
04 · Vite 原理与实战
Vite 为什么比 Webpack 快:开发期用浏览器原生 ESM + esbuild 预构建,免打包;生产期用 Rollup。讲清 dev server、依赖预构建、配置要点与"为什么现代项目几乎都选 Vite"。
05 · Babel 与 TypeScript 编译
Babel 的定位(语法降级,不类型检查)与 preset 机制,TypeScript 的两种编译路径(tsc 做类型检查、esbuild/babel 只转译),以及"类型检查"与"转译"必须分离的工程常识。
06 · 代码规范(ESLint / Prettier / Stylelint)
ESLint 查"代码问题"(潜在 bug、坏味道),Prettier 管"格式美观",两者职责分离如何避免冲突;Stylelint 管 CSS;以及一套能落地的团队规范配置。
07 · Git Hooks 与质量门禁
为什么靠"自觉"跑 lint 会失败:用 Husky 在 pre-commit 自动触发检查,lint-staged 只对暂存文件检查,配合 eslint/prettier 实现"提交即格式化、带问题提交不进场"。
08 · CI/CD 基础
CI/CD 把"构建+测试+部署"自动化:每次 push 自动跑 lint、类型检查、测试、构建、发布。讲清流水线阶段划分、缓存加速、以及"构建失败就别上线"这条铁律。
09 · 构建产物分析与优化
先量化再优化:用 bundle 分析工具定位体积大户,常见的优化手段(拆包、按需引入、压缩、资源优化、HTTP 缓存),以及"别盲目优化"的工程纪律。
10 · 微前端
微前端解决"多个团队、多个技术栈、独立部署却同屏运行"的问题。讲清核心思路(基座+子应用、运行时集成)、主流方案(qiankun/Module Federation)的取舍,以及它带来的复杂度代价。
11 · Monorepo 实战
Monorepo 把多个关联包/应用放在一个仓库统一管理:pnpm workspace 做依赖提升与过滤,Turborepo 做任务编排与远程缓存。讲清它解决什么、又带来什么,以及"小团队该不该上"。
💡 学习建议
工程化不是堆工具,而是解决"协作规模上升后的失控"。先理解打包器到底在做什么(依赖图、转译、拆分),再学配置;规范与 CI 要"fail fast",把问题挡在本地。Monorepo 别盲目上,先想清楚收益。