use-gulp
参考:
https://github.com/Platform-CUF/use-gulp
use-gulp
为什么使用gulp?
首先看一篇文章 Gulp的目标是取代Grunt
根据gulp的文档,它努力实现的主要特性是:
- 易于使用:采用代码优于配置策略,gulp让简单的事情继续简单,复杂的任务变得可管理。
- 高效:通过利用node.js强大的流,不需要往磁盘写中间文件,可以更快地完成构建。
- 高质量:gulp严格的插件指导方针,确保插件简单并且按你期望的方式工作。
- 易于学习:通过把API降到最少,你能在很短的时间内学会gulp。构建工作就像你设想的一样:是一系列流管道。
Gulp通过流和代码优于配置策略来尽量简化任务编写的工作。
别的先不说,通过代码来比较两者(gulp VS grunt) 可以参照我的代码,也可以阅读该文章。
两者的功能基本类似,gulp是通过代码完成任务,体现了代码优于配置的原则,对程序员更加友好,另外它也可以将多个功能一次性串起来,不需要暂存在本地,体现了对流的使用,这个可以阅读该文章里的例子。
另外,经常会有人问,为什么gulp比grunt快,这个可以参考这篇文章 或者我本人在segmentfault上得回答编译同样的scss,为什么gulp的速度几乎是grunt的两倍?
关于NodeJS流(stream)
因为gulp是基于流的方式工作的,所以想要进一步深入gulp,我们应该先学习NodeJS的流, 当然即使对流不熟悉,依然可以很方便的使用gulp。
- 资料
- 相关视频
常用资料
- Gulp官网 http://gulpjs.com/
- Gulp中文网 http://www.gulpjs.com.cn/
- Gulp中文文档 https://github.com/lisposter/gulp-docs-zh-cn
- Gulp插件网 http://gulpjs.com/plugins/
- Awesome Gulp https://github.com/alferov/awesome-gulp
- StuQ-Gulp实战和原理解析 http://i5ting.github.io/stuq-gulp/
gulp常用插件
流控制
- event-stream 事件流,不是插件但很有用
- gulp-if 有条件的运行一个task
- gulp-clone Clone files in memory in a gulp stream 非常有用
- vinyl-source-stream Use conventional text streams at the start of your gulp or vinyl pipelines
AngularJS
- gulp-ng-annotate 注明依赖 for angular
- gulp-ng-html2js html2js for angular
- gulp-angular-extender 为angular module添加dependencies
- gulp-angular-templatecache 将html模板缓存到$templateCache中
文件操作
- gulp-clean 删除文件和目录, 请用del来代替它Example
- gulp-concat 合并文件
- gulp-rename 重命名文件
- gulp-order 对src中的文件按照指定顺序进行排序
- gulp-filter 过滤文件 非常有用 Example
- gulp-flatten 当拷贝文件时,不想拷贝目录时使用 segmentfault
压缩
- gulp-minify-css压缩css
- gulp-uglify 用uglify压缩js
- gulp-imagemin 压缩图片
- gulp-minify-html 压缩html
- gulp-csso 优化CSS
工具
- gulp-load-plugins 自动导入gulp plugin
- gulp-load-utils 增强版gulp-utils
- gulp-task-listing 快速显示gulp task列表
- gulp-help 为task添加帮助描述
- gulp-jsdoc 生成JS文档
- gulp-plumber Prevent pipe breaking caused by errors from gulp plugins Example
- yargs 处理 process.argv
- run-sequence 顺序执行 gulp task,gulp 4.0 已经支持该功能
gulp.series(...tasks) - gulp-notify gulp plugin to send messages based on Vinyl Files
- gulp-shell 非常有用
- gulp-grunt 在gulp中运行grunt task
JS/CSS自动注入
- gulp-usemin Replaces references to non-optimized scripts or stylesheets into a set of HTML files
- gulp-inject 在HTML中自动添加style和script标签 Example
- wiredep 将bower依赖自动写到index.html中 Example
- gulp-useref 功能类似与usemin Example 新版本用法有变化,详见gulp-useref的README.md
代码同步
- browser-sync 自动同步浏览器,结合gulp.watch方法一起使用 Example 1 Example 2
- gulp-nodemon server端代码同步
Transpilation
- gulp-babel 将ES6代码编译成ES5 Example
- babelify Browserify transform for Babel
- gulp-traceur Traceur is a JavaScript.next-to-JavaScript-of-today compiler
打包
- gulp-browserify 用它和 babelify 实现ES6 module Example
编译
代码分析
- gulp-jshint JSHint检查 Example
- gulp-jscs 检查JS代码风格 Example
特别推荐
- gulp-changed 只传输修改过的文件
- gulp-cached 将文件先cache起来,先不进行操作
- gulp-remember 和gulp-cached一块使用
- gulp-newer pass through newer source files only, supports many:1 source:dest
其他
- webpack-stream gulp与webpack Example
- gulp-autoprefixer Prefix CSS
- gulp-sourcemaps 生成source map文件
- gulp-rev Static asset revisioning by appending content hash to filenames: unicorn.css → unicorn-d41d8cd98f.css
- gulp-rev-replace Example
- gulp-iconfont 制作iconfont Example
- gulp-svg-symbols 制作SVG Symbols, 关于使用SVG Symbol
- gulp-template 模板替换
- gulp-dom-src 将html中的script,link等标签中的文件转成gulp stream。
- gulp-cheerio Manipulate HTML and XML files with Cheerio in Gulp.
- require-dir 利用它我们可以将 gulpfile.js 分成多个文件,具体用法可以参考这个Splitting a gulpfile into multiple files
gulp入门视频
Learning Gulp (youtube)
- Learning Gulp #1 - Installing & Introducing Gulp
- Learning Gulp #2 - Using Plugins & Minifying JavaScript
- Learning Gulp #3 - Named Tasks
- Learning Gulp #4 - Watching Files With Gulp
- Learning Gulp #5 - Compiling Sass With Gulp
- Learning Gulp #6 - Keep Gulp Running With Plumber
- Learning Gulp #7 - Handling Errors Without Plumber
- Learning Gulp #8 - LiveReload With Gulp
- Learning Gulp #9 - Easy Image Compression
- Learning Gulp #10 - Automatic Browser Prefixing
- Learning Gulp #11 - Gulp Resources & What's Next
Get started with gulp(youtube)
- Get started with gulp Part 1: Workflow overview and jade templates
- Get started with gulp Part 2: gulp & Browserify
- Get started with gulp Part 3: Uglify & environment variables
- Get started with gulp Part 4: SASS & CSS minification
- Get started with gulp Part 5: gulp.watch for true automation
- Get started with gulp Part 6: LiveReload and web server
Gulp in Action (慕课网)
BGTSD (youtube)
John Papa(付费)
gulp精彩文章
- Using GulpJS to Generate Environment Configuration Modules
- Introduction to Gulp.js
- Merging multiple GulpJS streams into one output file
- Getting ES6 modules working thanks to Browserify, Babel, and Gulp
- Gulp学习指南系列:
- 6 Gulp Best Practices
- Automate all Imports (gulp-inject, wiredep, useref and angular-file-sort)
- Understand directory structure requirements
- Provide distinct development and production builds (browser-sync)
- Inject files with gulp-inject and wiredep ( gulp-inject and wiredep )
- Create production builds with gulp-useref (gulp-useref)
- Separate Gulp tasks into multiple files
require('require-dir')('./gulp')
- Gulp 范儿 -- Gulp 高级技巧

- Gulp 错误管理

- 探究Gulp的Stream

- Gulp安装及配合组件构建前端开发一体化
- Gulp入门指南
- Gulp入门指南 - nimojs
- Gulp入门教程
- Gulp开发教程(翻译)
- Gulp:任务自动管理工具 - ruanyifeng
- BrowserSync — 你值得拥有的前端同步测试工具
- Essential Plugins for Gulp

- 10 things to know about Gulp

- Writing a gulp plugin

- Gulp Plugin 开发

- 前端 | 重构 gulpfile.js
- gulp使用经验谈
- Splitting a gulpfile into multiple files

- Make your Gulp modular
- gulp 传参数 实现定制化执行任务 使用
gulp.env
gulp和ES6
debug gulp task
gulp项目结构应用实例
gulp常见问题 segmentfault之gulp
gulp.src([ files ], { "base" : "." })
gulp 4.0 相关
目前 gulp 4.0 还没有正式release,先推荐几篇文章让大家热热身。
不定期更新中 ... ...
use-gulp的更多相关文章
- 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)
通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...
- 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)
前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...
- 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)
相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...
- 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二)
前言 文章 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 中,已经完成对 gulp 的安装,由于是window环境,文中特意提到了可以通过安装 gitbash 来代替 ...
- gulp详细入门教程
本文链接:http://www.ydcss.com/archives/18 gulp详细入门教程 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优 ...
- 做一个gulp+webpack+vue的单页应用开发架子
1.目标 最近项目上的事情不多,根据我自己的开发习惯,决定开发一些简单的开发架子,方便以后事情多的时候直接套用.本文讲的一个gulp+webpack+vue的单页应用架子,想要达到的目的: 可以通过命 ...
- 前端自动化构建工具gulp记录
一.安装 1)安装nodejs 通过nodejs的npm安装gulp,插件也可以通过npm安装.windows系统是个.msi工具,只要一直下一步即可,软件会自动在写入环境变量中,这样就能在cmd命令 ...
- gulp初学
原文地址:gulp初学 至于gulp与grunt的区别,用过的人都略知一二,总的来说就是2点: 1.gulp的gulpfile.js 配置简单而且更容易阅读和维护.之所以如此,是因为它们的工作方式不 ...
- gulp批量打包文件并提取公共文件
gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器. browseriyf是模块化打包工具. 一般情况下,Browserify 会把所有的模块打包成单个文件.单个文件在大多数情况下是 ...
- 使用gulp解决RequireJS项目前端缓存问题(二)
1.前言 这一节,我们主要解决在上一节<使用gulp解决RequireJSs项目前端缓存问题(一)>末尾提到的几个问题: 对通过require-config.js引入的js文件修改后,没有 ...
随机推荐
- 配置yum源的步骤(阿里源)
配置yum源的步骤1.可以移除默认的yum仓库,也就是删除 /etc/yum.repos.d/底下所有的.repo文件(踢出国外的yum源) 1.配置yum源,找到阿里云的官方镜像源地址 https: ...
- WebSphere中配置的数据源在Web应用中引用的写法
WebSphere中配置的数据源在Web应用中引用时名称一定要和数据源的JNDI名称保持一致,否则会出现无法找到数据源的错误. 引用WAS的数据源时只需要与JNDI名称保持一致即可. 引用Tomcat ...
- HTTP协议 之 缓存
转自: http://www.cnblogs.com/TankXiao/archive/2012/11/28/2793365.html HTTP协议提供了非常强大的缓存机制, 了解这些缓存机制,对提 ...
- APP统计
APP统计就是统计用户使用app的各项指标,比如说日活跃量,页面打开次数,新增用户数量,用户年龄分布,用户地区分布,用户性别分布以及用户使用时间段等等.将统计出来的用户信息进行比对分析,可以服务公司的 ...
- iOS--多线程之线程间通讯
线程间通讯 一.NSThread 1.简单说明 ①线程间通信:在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信 ②线程间通信的体现 1个线程传递数据给另1个线程 在1个线程中执行完特 ...
- H.264学习笔记6——指数哥伦布编码
一.哥伦布码 哥伦布码就是将编码对象分能成等间隔的若干区间(Group),每个Group有一个索引值:Group Id. >对于Group Id采用二元码编码: >对于Group内的编码对 ...
- Node.js——网站访问一般流程
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件 下一篇:Farseer.net轻量级ORM开源 ...
- 【译】x86程序员手册33-9.6中断任务和中断处理程序
9.6 Interrupt Tasks and Interrupt Procedures 中断任务和中断处理程序 Just as a CALL instruction can call either ...
- Codeforces Round #460 (Div. 2)_D. Substring_[dp][拓扑排序]
题意:一个有向图,每个结点 被赋予一个小写字母,一条路径的value等与这条路径上出现次数最多的字母的数目,求该图的最大value 比赛时,用dfs超时,看官方题解用的dp和拓扑排序,a--z用0-2 ...