前端自动化构建环境的搭建
为了UED前端团队更好的协作开发同时提高项目编码质量,我们需要将Web前端使用工程化方式构建;
目前需要一些简单的功能:
1. 压缩HTML
2. 检查JS
3. 编译SASS
4. 压缩图片
5. 压缩CSS
6. 压缩JS
7. 雪碧图制作
8. 静态服务器
9. 代理解决跨域
10. 打包项目
目前最知名的构建工具: Gulp、Grunt、NPM + Webpack;
grunt是前端工程化的先驱
gulp更自然基于流的方式连接任务
Webpack最年轻,擅长用于依赖管理,配置稍较复杂
PC端项目,我们推荐使用Gulp,Gulp基于nodejs中stream,工作流,效率更好语法更自然,不需要编写复杂的配置文件
演示项目
初识 gulp
简介
gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用她,我们不仅可以很愉快的编写代码,而且大大提高我们的工作效率。
gulp是基于Nodejs的自动任务运行器, 她能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。在实现上,她借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。通过本文,我们将学习如何使用Gulp来改变开发流程,从而使开发更加快速高效。
gulp 和 grunt 非常类似,但相比于 grunt 的频繁 IO 操作,gulp 的流操作,能更快地更便捷地完成构建工作。
Gulp使用
Gulp是基于 Node.js的,需要要安装 Node.js
为了确保依赖环境正确,我们先执行几个简单的命令检查。
node -v
Node是一个基于Chrome JavaScript V8引擎建立的一个解释器
检测Node是否已经安装,如果正确安装的话你会看到所安装的Node的版本号接下来看看npm,它是 node 的包管理工具,可以利用它安装 gulp 所需的包
npm -v
这同样能得到npm的版本号,装 Node 时已经自动安装了npmnpm介绍
开始安装Gulp
npm install -g gulp
全局安装 gulpgulp -v
得到gulp的版本号,确认安装成功
基础安装结束
选装cnpm
因为npm安装插件是从国外服务器下载,受网络影响大,这里建议使用cnpm
|
|
cmd命令小技巧
|
|
集合功能
- HTML组件化和压缩
- 编译Sass和压缩css
- 检查Javascript
- 编译es6语法
- 压缩Javascript
- 无损压缩图片
- 雪碧图制作
- 创建静态服务器
- 设置代理解决跨域
- 打包项目且生成压缩包
- 结合webpack使用(选用)
项目目录结构
|
|
gulpfile配置文件
常用的插件
gulp-sass: sass的编译
gulp-autoprefixer: 自动添加css前缀
gulp-minify-css: 压缩css一行
gulp-uglify: 压缩js代码
gulp-notify: 加控制台文字描述用的
gulp-clean: 清理文件
gulp-file-include: include 文件用
gulp-imagemin: 图片压缩
imagemin-pngquant: 图片无损压缩
gulp-cache: 检测文件是否更改
gulp-zip: 自动打包并按时间重命名
gulp-htmlmin: 压缩html
merge-stream: 合并多个 stream
gulp-util: 打印日志 log
gulp-plumber: 监控错误
gulp-babel: 编译ES6
gulp-if: 条件判断
gulp-sequence: 顺序执行
gulp-eslint: 代码风格检测工具
del: 删除文件
制作雪碧图 (支持同时制作多个)
规定如下
- 在src/assets/image中,sprite是作为需要制作雪碧图的文件夹
- 在sprite文件夹下,必须新建一个文件夹,例如user文件夹,me文件,存放你的图标
- 执行gulp sprites任务
- 任务完成,在src/assets/image中就会生成一个icon文件夹,里面就是生成的雪碧图,在src/assets/css会生成雪碧图的scss样式文件
|
|
gulpfile.js内容
|
|
项目任务命令
|
|
ESLint规范代码
ESLint
为什么使用ESLint
使用使用 ESLint 工具和代码风格检测工具,则可以辅助编码规范执行,有效控制代码质量。
项目地址
|
|