gulp 教程

gulp.js 是基于node.js构建的。利用nodejs流的威力

1.

安装nodejs http://www.gezila.com/tutorials/40873.html

2.

安装gulp  http://www.th7.cn/system/mac/201505/104211.shtml

{sudo npm install -g gulp            gulp -v以确认安装成功}                                               

sudo npm install gulp//在项目目录下安装


3.

web项目初使用      项目根目录下 npm init  {生成package.json}          在项目根目录下新建 gulpfile.js

{

var gulp=require('gulp');

gulp.task('default',function() {

console.log('hello gulp');

})

}

4.

安装gulp-uglify(样式压缩) 插件  sudo npm install --save-dev gulp-uglify (作用:压缩js文件等,--save-dev 将uglify注入到package.json中的dependencies中)

使用:在gulpfile.js总填写代码

```

var uglify=require('gulp-uglify');

gulp.task('script',function() {

gulp.src('js/*.js')//源文件 *表示所有

.pipe(uglify())  //对通道中的文件进行处理

.pipe(gulp.dest('build'));//将处理后的文件输出到文件夹 build 中

})

````

5.

jshint  gulp-jshint(检查js错误)插件 安装:sudo npm install jshint gulp-jshint --save-dev

使用:var jshint=require('gulp-jshint');

gulp.task('jshint',function() {

gulp.src('js/*.js')

.pipe(jshint())

.pipe(jshint.reporter('default'));

})

6.

jshint-stylish(错误样式报告)插件   安装: sudo npm install --save-dev jshint-stylish【作用 错误报告采用更容易看得懂的样式】

使用:varjshintStylish=require('jshint-stylish');

将4中最后一句改为:.pipe(jshint.reporter(jshintStylish));

或者:直接将最后一句改为.pipe(jshint.reporter('jshint-stylish'));

结果:js 文件中警告用蓝色,错误用红色。并在该js文件后给出警告和错误的数量。

7.

map-stream(自定义报告样式 属于nodejs 的包) 安装:sudo npm install --save-dev map-stream

使用:

1.自定义样式

var map=require('map-stream');

var customerReporter=map(function(file,cb) {

if(!file.jshint.success){

console.log('jshint failed in '+file.path);

file.jshint.results.forEach(function(err) {

if(err){

// console.log(err);

console.log("在 "+file.path+" 中第 "+ err.error.line+" 行,"+

"第 "+err.error.character+' 列,有'+err.error.reason+"的错误");

}

})

}

cb(null,file);

});

/*

err 对象

{ file: 'js/tableModel.js',

error:

{ id: '(error)',

raw: 'Missing semicolon.',

code: 'W033',

evidence: '}',

line: 48,

character: 2,

scope: '(main)',

a: undefined,

b: undefined,

c: undefined,

d: undefined,

reason: 'Missing semicolon.' } }

*/

2.使用自定义样式(将4中最后一句修改)

gulp.task('jshint',function() {

gulp.src('js/tableModel.js')

.pipe(jshint())

.pipe(customerReporter);

//.pipe(jshint.reporter(jshintStylish));

});

8

src 的参数  1.*.js 匹配当前目录下的素有js文件。 2.*/*.js 匹配第一次子文件目录下的所有js,第二层使用*/*/*.js        3.**/*.js匹配所有文件夹目录下的所有js文件,包括当前文件。

9.

gulp-concat (合并文件)插件安装:sudo npm install --save-dev gulp-concat

使用:

var gulpConcat=require('gulp-concat');

gulp.task('concat',function() {

gulp.src('build/*.js')//源文件

.pipe(gulpConcat('all.js'))//对pipe中的文件进行合并

.pipe(gulp.dest('jsmin'));//输出到指定目录

});

10.

clean task (清除一个目录下的所有文件)

使用:

gulp.task('clean',function() {

return del('build/*.js');

});

11.

gulp-imagemin (图片压缩插件)安装:sudo npm install --save-dev gulp-imagemin

使用:

var imagemim=require('gulp-imagemin');

gulp.task('imgmin',function() {

gulp.src('pic/*')

.pipe(imagemim())

.pipe(gulp.dest('pic-min'));

});

12

gulp-clean-css(将css压缩为企业文件)  安装:npm install gulp-clean-css --save-dev 

使用:var cssclean=require('gulp-clean-css');

gulp.task('cssClean',function() {

gulp.src('css/*')

.pipe(cssclean({compatibility:'ie8'}))

.pipe(gulp.dest('build'))

});

clean-css 参数

var gulp=require('gulp'),

cssmin=require('gulp-minify-css');

gulp.task('testCssmin',function(){

gulp.src('src/css/*.css')

.pipe(cssmin({

advanced:false,//类型:Boolean 默认:true [是否开启高级优化(合并选择器等)]

compatibility:'ie7',//保留ie7及以下兼容写法 类型:String 默认:''or'*' [启用兼容模式; 'ie7':IE7兼容模式,'ie8':IE8兼容模式,'*':IE9+兼容模式]

keepBreaks:true,//类型:Boolean 默认:false [是否保留换行]

keepSpecialComments:'*'

//保留所有特殊前缀 当你用autoprefixer生成的浏览器前缀,如果不加这个参数,有可能将会删除你的部分前缀

}))

.pipe(gulp.dest('dist/css'));

});

13

gulp-csslint(检查css 错误)  安装:sudo npm install --save-dev gulp-csslint

使用:var csslint=require('gulp-csslint');

gulp.task('cssLint',function() {

gulp.src('css/*.css')

.pipe(csslint())

.pipe(csslint.formatter());

});

14.

csslint-stylish(css 检查报告样式)安装:sudo npm install --save-dev csslint-stylish

使用:{修改13}

var csslint=require('gulp-csslint');

csslint.addFormatter('csslint-stylish');

gulp.task('cssLint',function() {

gulp.src('css/*.css')

.pipe(csslint())

.pipe(csslint.formatter('stylish'))

//.pipe(csslint.formatter());

});

结果:不同错误显示不同颜色

15.

自定义css样式报告

16.

gulp-rename (重命名)插件  安装:npm install --save-dev gulp-rename

使用

varrename=require("gulp-rename");

//rename via string

gulp.src("./src/main/text/hello.txt")

.pipe(rename("main/text/ciao/goodbye.md"))

.pipe(gulp.dest("./dist"));//./dist/main/text/ciao/goodbye.md

//rename via function

gulp.src("./src/**/hello.txt")

.pipe(rename(function(path){

path.dirname+="/ciao";

path.basename+="-goodbye";

path.extname=".md"

}))

.pipe(gulp.dest("./dist"));//./dist/main/text/ciao/hello-goodbye.md

//rename via hash

gulp.src("./src/main/text/hello.txt",{base:process.cwd()})

.pipe(rename({

dirname:"main/text/ciao",

basename:"aloha",

prefix:"bonjour-",

suffix:"-hola",

extname:".md"

}))

.pipe(gulp.dest("./dist"));

17.

gulp-htmlmin (html 压缩) 安装 :npm install --save-dev gulp-htmlmin

使用:

var htmlmin=require('gulp-htmlmin');

gulp.task('htmlMin',function() {

gulp.src('index.html')

.pipe(htmlmin({collapseWhitespace:true}))

.pipe(gulp.dest('html.min'));

});





17.

gulp-sourcemaps  安装 npm install --save-dev gulp-sourcemaps

使用:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 本文默认你已经安装好node环境,并且熟悉node命令,和window cd命令。 gulp简介 基于nod...
    9I阅读 1,993评论 4 50
  • gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学...
    依依玖玥阅读 3,185评论 7 55
  • 对网站资源进行优化,并使用不同浏览器测试并不是网站设计过程中最有意思的部分,但是这个过程中的很多重复的任务能够使用...
    懵逼js阅读 1,088评论 0 8
  • gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学...
    小裁缝sun阅读 952评论 0 3
  • gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学...
    build1024阅读 540评论 0 0