前端工具链的形成是前端发展的一个体现,从开始的html、css、js三剑客就可以搞定一个项目,到现在各类工具百花齐放协助开发,越发庞大的前端项目,越是需要一套完整的开发管理流程,前端工程化被提出来。工程化下工具链也就产生了 现在的项目都有着一些通用的需求:
对应的产生了一系列解决方法
静态类型语言 - typescript
问题:javascript令人喜欢的点在于它的灵活,弱类型等,但是在大型项目,多人协作情况下,类型的不统一,随意修改,导致错误的发生。
代码风格检查 - eslint
问题:多人协作下,每个人编码风格不统一,如空格与tab,维护扩展时带来编码问题,git修改历史问题。
依赖管理 - npm、yarn
问题:海量的第三方库引用需要有合适的包管理工具。
关键点:npm 与 yarn的区别,功能上能相互替代,yarn采用并行下载依赖,npm串行下载。
代码转译 - babel
问题:需要兼容低版本浏览器。
协助开发 - live reload 、HMR(Hot Module Replacement )
问题:代码修改后需要手动刷新页面。代码修改后更改需要刷新后才能应用上。
打包压缩 - wabpack、rollup
问题:使用框架或者第三方库编写的代码过大,文件过多需要打包到一起加载。
重复任务管理 - gulp、webpcke、npm script
问题:需要对项目内的重复任务进行执行。
关键点:gulp通过编写文件,组合多任务,gulp 任务名即可。webpack拥有海量插件进行一系列操作。npm scripts则是在package.json的scripts中注册npm命令,执行一系列node命令,shell命令。
集大成 脚手架 - vue-cli、create-react-app、自定义脚手架 问题:上述的软件如果每次新建项目都要重新配置一边会有很多重复动作,编写脚手架,能够让不熟悉配置的人也能快速拥有相关功能。