前端工作流全解析

随着 web 应用越来越复杂,项目的结构和代码量也变的愈加庞大,前端人员越来越需要在工程化的层面提高开发效率,前端开发是一个飞速发展的领域,市面上现在有各种各样的工具来辅助我们开发,比如说我们在开发过程中就可能会用到下面这些工具:

1.包管理器 npm
我们在开发项目的过程中,会引入各种各样的依赖,比如说:

JS 框架:react
CSS 框架:Semantic-UI,Bootstrap
如果你的代码风格偏向函数式编程,你可能会用到 Lodash 或者 underscore
如果你的项目涉及到数据交互,你还需要 Axios 来帮你发起ajax 或者 http 请求
如果这些依赖在开发的过程中一个一个的去网站下载一定会很麻烦,所以我们需要一个工具来帮助我们安装这些依赖,这个工具就是包管理器。

管理器在帮助我们安装项目依赖的时候,也会帮助我们安装包的依赖,比如说包管理器在安装 Semantic-UI 的时候,发现 Semantic-UI 使用到了 jQuery,那么包管理器就会帮助我们安装 jQuery 。我们会使用到的包管理器是 npm。

npm不仅可以帮助我们安装包,也能够帮助我们更新、卸载和分析包。

2.任务流工具Grunt 和 Gulp
但是仅有包管理器还是不够的,比如你在项目开展的过程中要进行代码检查,编译SCSS文件,合并Sprite图片,压缩合并代码,这些一个一个的动作我们叫做任务,这些任务是一个接着一个执行的,我们把它叫做任务流,帮我们做任务流的工具,我们叫做任务流工具。

Grunt 和 Gulp就是任务流工具,但是任务流工具没办法帮助我们支撑模块化开发,随着 commonJS 和 ES6 的出现,模块化开发在前端有了越来越多的实践。

3.模块打包器 webpack
但是在目前浏览器环境代码滑块化还是无法使用,所以如果有一个工具能够让我们在开发的时候使用标准的模块化语法,而上线的时候有帮助我们对代码进行编译转换合并成单个文件让浏览器来运行,这个工具我们把它叫做模块打包器。

事实上 webpack 不仅仅帮助我们打包文件,他还会做一些任务流工具做的工作,比如说编译文件,代码检查。

4.生产依赖和开发依赖
生产依赖
JS 框架:react
CSS 框架:Semantic-UI,Bootstrap
如果你的代码风格偏向函数式编程,你可能会用到 Lodash 或者 underscore
如果你的项目涉及到数据交互,你还需要 Axios 来帮你发起ajax 或者 http 请求
开发依赖
模块打包器 webpack
任务流工具 gulp
如何区分开发依赖和生产依赖?
当你的项目放到浏览器端去运行的时候你还需要它吗?如果需要那它就是生产依赖,反之则是开发依赖。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、 JavaScript 的基本类型有哪些?引用类型有哪些?null 和 undefined 的区别?(必 会) 76 2、如何判断 JavaScript 的数据类型?(必会) JavaScript 数据类型一共有 7 种: 77 2、 创建对象有几种方法(必会) 79 4、简述创建函数的几种方式? (必会) 79 5、Javascript 创建对象的几种方式? (必会) 79 6、请指出 JavaScript 宿主对象和原生对象的区别?(必会) 81 7、 JavaScript 内置的常用对象有哪些?并列举该对象常用的方法?(必会) 82 8、 === 和 ==的区别?(必会) 87 9、 null,undefined 的区别(必会) 88 10、JavaScript 中什么情况下会返回 undefined 值?(必会) 88 11、如何区分数组和对象?(必会) 89 12、怎么判断两个对象相等?(必会) 89 13、列举三种强制类型转换和两种隐式类型转换?(必会) 91 14、 JavaScript 中怎么获取当前日期的月份?(必会) 91 15、 什么是类数组(伪数组),如何将其转化为真实的数组?(必会) 92 16、如何遍历对象的属性?(必会) 92 17、src 和 href 的区别是?(必会) 94 18、如何使用原生 JavaScript 给一个按钮绑定两个 onclick 事件?(必会) 95 19、 如何在 JavaScript 中比较两个对象?(必会) 95 20、JavaScript 中的作用域、预解析与变量声明提升? (必会) 97 21、变量提升与函数提升的区别?(必会) 99 22、 什么是作用域链?(必会) 99 23、如何延长作用域链?(必会) 99 23、 判断一个值是什么类型有哪些方法?(必会) 100 25、JavaScript 变量按照存储方式区分为哪些类型,并描述其特点?(必会) 100 26、如何实现数组的随机排序?(必会) 100 27、 Function foo() {}和 var foo = function() {}之间 foo 的用法上的区别?(必会) 101 28、索引有哪几种类型,有什么区别?(了解) 102 29、简述 Array.form 和 Array.of 的使用及区别?(了解) 103 30、根据你的理解,请简述 JavaScript 脚本的执行原理(了解) 104 WebAPI 105 1、 什么是 dom?(必会) 105 2、dom 是哪种基本的数据结构?(必会) 105 3、 dom 操作的常用 api 有哪些?(必会) 105 4、 dom 节点的 Attribute 和 Property 有何区别?(必会) 106 5、dom 结构操作怎样添加、移除、移动、复制、创建和查找节点?(必会) 106 6、dom 事件的级别?(必会) 107 7、dom 事件模型?(必会) 107 8、dom 事件流?(必会) 107 9、什么是事件冒泡,它是如何工作的?如何阻止事件冒泡?(必会) 108 10、JavaScript 动画和 CSS3 动画有什么区别?(必会) 108 11、event 对象的常见应用?(必会) 109 12、自定义事件/ 模拟事件?(必会) 109 13、通用事件绑定/ 编写一个通用的事件监听函数?(必会) 110 14、dom 和 bom 的区别(必会) 111 15、事件三要素(必会) 111 16、事件执行过程(必会) 111 17、获取元素位置(必会) 112 18、封装运动函数(必会) 112 19、绑定事件和解除事件的区别(必会) 113 20、谈谈事件委托的理解?(必会) 114 21、 JavaScript 中的定时器有哪些?他们的区别及用法是什么?(必会) 114 22、比较 attachEvent 和 addEventListener?(必会) 115 23、document.write 和 innerHTML 的区别?(必会) 115 24、 什么是 window 对象?什么是 document 对象?(必会) 116 25、Js 拖动的原理?(必会) 118 26、描述浏览器的渲染过程,DOM 树和渲染树的区别(必会) 119 27、dom 树和 render 树之间的关系?(高薪常问) 119 28、获取到页面中所有的 CheckBox 怎么做(不适用第三方框架)?(高薪常问) 119 29、 简单说一下页面重绘和回流?(高薪常问) 119 30、如何最小化重绘(repaint)和回流(reflow)(高薪常问) 120 31、Js 延迟加载的方式有哪些?(了解) 120 32、IE 与

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值