1.谈谈你对工程化的初步认识,结合你之前遇到过的问题说出三个以上工程化能够解决问题或者带来的价值
前端工程化是指遵循一定的标准和规范,通过工具去提高效率,减低成本的一种手段
一切以提高效率,减低成本、质量保证为目的的手段都属于工程化,一切重复的工作都应该被自动化,并不是一个工具,是一个规划的流程
技术往往是为了解决问题而存在的
- 在开发过程当中想要使用es6+的新特性,提高我们的编码效率,但是兼容有问题;
- 想要使用Less/Sass/PostCSS增强css的编程性,但是在运行环境不能被支持;
- 想要使用模块化,组件化的方式提高项目的可维护性,在运行环境中也不能被支持
- 上线过程中做的一些重复性工作,手动压缩代码,资源文件,部署过程需要手动上传代码到服务器,手动操作通常会出现各种各样的问题
- 多人协同开发时,无法硬性同意大家的代码风格,从仓库当中pull回来的代码质量无法保证
- 开发部分功能时,需要等待后端服务接口提前完成
可以总结为解决了以下六点问题
- 传统语言和语法的弊端
- 无法使用模块化/组件化
- 重复式的机械工作
- 代码风格统一 /质量保证
- 依赖后端服务接口支持
- 整体依赖后端项目
工程化的主要体现为
- 脚手架工具开发
- 自动化构建系统
- 模块化打包
- 项目代码规范化
- 自动化部署
一些成熟的工程化集成create-react-app,vue-cli,angular-cli,gatsby-cli
2、你认为脚手架除了为我们创建项目结构,还有什么更深的意义?
更重要的是提供开发者一些规定和规范
- 相同的组织结构
- 相同的代码开发范式
- 相同的模块依赖
- 相同的工具配置
- 相同的基础代码
主要处理一些相同的复杂性的工作