自动化构建工具 Gulp.js

某段时期前端技术选型上使用过 Gulp.js 解决前端工程化及自动化构建问题,下表整理了其在实践项目中常用的插件:

插件 功能 备注
gulp-jshint 检查 JavaScript 语法 http://jshint.com/docs/options/
gulp-uglify 压缩 JavaScript
gulp-sourcemaps 输出 sourcemaps 部署前端之前,开发者通常会对代码进行打包压缩,这样可以减少代码大小,从而有效提高访问速度。然而,压缩代码的报错信息是很难Debug的,因为它的行号和列号已经失真。这时就需要Source Map来还原真实的出错位置了。
gulp-imagemin 压缩图片 progressive JPEG 图像渐进式扫描;interlaced GIF 图像隔行扫描
gulp-rev 静态资源 hash 在实际生产环境中,我们页面引用的静态资源的文件名都是带版本号的(非覆盖式升级),这样方便版本管理(如更新与回滚)和防止缓存。通常我们使用文件的md5编码作为版本号,生成文件指纹。
gulp-less Less 文件编译 用于引入 Less 扩展 CSS 语言,提升前端样式的开发效率。
gulp-autoprefixer 根据所需兼容的浏览器版本,自动补全厂商前缀
gulp-css-base64 将CSS 样式表中引用的图片和字体通过 base64 编码压缩合并到一起,减少文件请求数 maxWeightResource 资源最大阈值,默认为 32K
gulp-ejs 编译 HTML 中的 ejs 模板,可用于页面布局拆分,提升代码复用性 http://ejs.co/
gulp-htmlmin 压缩 HTML
gulp-inline-source 将 HTML 外部引用的样式和脚本以内联的方式嵌到 HTML 文件中,减少文件请求数
gulp-if 编译时动态判断
gulp-replace 编译时动态替换字符串 可用于根据不同环境构建代码,解决各环境间的差异。例如正则匹配并全局替换 HTML 中的 ${web} 变量。
gulp-tar 打包静态资源 tar-stream
gulp-mock-server API Mock Server,前后端分离后的 API 模拟利器
browser-sync 监听本地文件变化并同步刷新浏览器,提升开发效率的利器 https://www.browsersync.io/