《初探前端工程化》笔记(1)

186 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情

接触前端几年,从最初的改样式,写页面,再到后面的写组件,抽离公共方法和写公共组件,再到后面的搭建项目前端架子,越发觉得前端工程化知识的片面性,于是有了阅读这本小册的冲动

1 定义

将工程方法系统化地应用到前端开发中,以系统、严谨、可量化的方法开发、运营、维护前端应用程序,

目的: 降低生产成本,提高生产效率(降本提效)

再好的项目,团队成员不按照项目规定上来做,最后始终是一锅粥,屎山,你写一个样式,他在别的地方写了同样的样式,

2 项目搭建

2.1 工具

  • JS 运行环境:node
  • 包管理工具:npm
  • 静态模块打包器:webpack
  • JavaScript 编译器:babel
  • 本地快速开发工具:dev-server

2.2 命令及配置

npm init  创建项目

npm install webpack  打包工具

// 使用 DevServer 创建一个支持 http 的本地服务。

npm install webpack-dev-server --save-dev 

npm install webpack-cli

需要设置 webpack 的配置,在根目录下创建 webpack.config.js 配置文件,设置入口文件和输出文件名

2.3 问题解决

1、command not found: webpack

本地全局没有安装 webpack 就会报错。需要配置环境变量path或者全局安装

虽然网上有很多脚手架用来创建项目,作为前端工程化的学习,突破自己的瓶颈,必须要有能不依赖工具进行开发的能力

3 脚手架

没事做就自己写脚手架用,搞kpi,没能力就用网上成熟的脚手架

4 npm与yarn区别

npmyarn
安装node安装的时候,已经把npm一并安装npm install -g yarn
依赖下载按照队列形式安装每一个包并行执行安装,性能有所提升
缓存机制网络下载再次安装时会从缓存中获取

5 模块化

5.1 CommonJS

5.2 AMD

5.3 CMD

5.4 ESM 

 export 用来导出模块接口,import 用来引入模块接口

几种模块化规范对比

运行环境加载方式运行机制特点
CommonJS服务器同步运行时第一次加载后会将结果缓存,再次加载会读取缓存的结构。
AMD浏览器异步运行时依赖前置,不管模块是否有用到,都会全量加载。
CMD浏览器异步运行时依赖就近,延迟加载
ESM浏览器/服务端异步编译时静态化,在编译时就确定模块之间的依赖关系,输入和输出。

6 组件化

组件化可以提高开发效率,因为组件复用和作用域隔离

6.1 如何设计一个组件

统一性、单一职责、复用性、生命周期和组件间的通信

学习的话,可以看element ui和ant ui的相关代码

7 开发规范

  • 命名规范;
  • 小驼峰 大驼峰
  • 文件资源命名
  • 参数命名
  • UI 规范;
  • 项目结构规范;

├─api (接口)

├─assets (静态资源)

├─components (公共组件)

├─styles (样式)

├─router (路由)

├─store (vuex)

├─utils (工具函数)

└─views (页面)

  • workflow 规范;

分支管理master、develop 、feature、

  • git commit 规范。

feat:本次改动为新增功能;

fix:本次改动为修补 bug;

docs:本次改动为新增或修改文档(documentation)信息;

style:本地改动为修改样式文件;

refactor:本次改动为代码重构;

test:本次改动为新增或修改测试用例;

chore:构建过程或辅助工具的变动;

总结

这本小册主要是初探前端工程化,很多东西,只要是参与项目过程中,就会有一定的了解和认识,浅尝辄止

第5点和6点,规范性的东西,在一般公司都有,根据公司内部规定开发,即可,大同小异

如果有借阅卡的,可以用借阅卡看下,不推荐购买本小册