gulp插件 - ocean111/oceanblog GitHub Wiki
gulp插件
项目中使用到gulp插件,针对css、js、img进行压缩,合并,添加版本号,自动化的流程实现项目
source = 'http://www.cnblogs.com/2050/p/4198792.html';
var gulp = require('gulp');
gulp.task('inint',function(){
//anything
})
gulp.task('aal',['arr','inint'],function(){
// anything amount
})
//任务是否在这些前置依赖的任务完成之前运行,确保依赖的任务列表中使用正确的异步执行方式
//使用callback、promise、stream均可
//gulp原理 :基于node的流stream为媒介
//gulp.src()方法获取的不是原始的流,而是虚拟的文件对象流,存储着相关的路径、文件名、内容
//本质用这个方法去读取你需要操作的文件
gulp.src(globs[,options]) //语法
/**
* @param globs 文件匹配模式 (类似正则) 包含多种匹配模式
*/
//gulp 内部使用 node-golb模块实现文件匹配功能
gulp.dest(path,[,options]) //语法
//path 文件路径
//使用gulp.src方法获取文件流,使用pipe方法导入到gulp插件中,最后把插件处理好的流导入gulp.dest
//最终文件名还是流本身
gulp.src('srcipt/jquery.js)
.pipe(gulp.dest('dist/foo.js'));
//最终生成文件路径为dist/foo.js/jquery.js ,而不是 dist/foo.js
var concatafile = require('gulp-concat), // 合并
uglifyJS = require('gulp-uglify'), // 混淆
shell = require("gulp-shell"), //
amdoptimize = require('amd-optimize');
demo ..........................
require('gulp-load-plugins') //依赖package.json 自动加载所需插件
{
package.json:{
gulp-rename : '~0.0.1',
gulp-ruby-sass : '~0.0.2'
}
eg : gulp-load-plugins
var plugins = require('gulp-load-plugins') (); //自动执行、自动加载
//需要使用时
plugins.rename;
plugins.rubySass; //驼峰式写法
}
require('gulp-rename') //正常情况 desk 只改变路径 修改名称需要在这之前完成
require('gulp-uglify') //js压缩
require('gulp-minify-css') //css压缩
require('gulp-minify-html') //html压缩
require('gulp-jshint') //js代码检查
require('gulp-concat') //文件合并
require('gulp-imagemin') //图片压缩
{
src : 'https://www.npmjs.com/package/gulp-rename' //扩展
eg : gulp-rename
gulp.task('rename',function(){
gulp.src('js/jquery.js')
.pipe(uglify()) //压缩
.pipe(rename('jquery.min.js')) // 将jq重命名jq.min.js
.pipe(gulp.dest('js')); //输出
})
}
ending 正则 ..........................
* 匹配文件路径中0个\多个字符,但不会匹配路径分隔符
eg: a.js , x.y , abc , abc/, 但不能匹配 a/b.js
*.* 匹配文件0/多个/子目录,需要单独出现
eg: a.js , style.css , a.b , a.y
*/*/*.js 能匹配a/b/c.js ,不能匹配 a/b.js , a/b/c/d.js
** 能匹配abc , a/b.js , a/b/c.js 匹配所有文件
**/*.js 能匹配 foo.js , a/foo.js , a/c/foo.js
a/**/z 能匹配 a/z , a/b/z , a/c/d/d/f/z ;首尾对应
? 匹配文件路径中的一个字符
[...] 匹配 首字母 ^ !时不匹配任何
多种匹配模式时可以使用数组
gulp.src ( ['js/*.js','css/*.css'] );
使用数组的好处方便使用排除法