gulp

1、gulp是什么?

gulp 是基于 node 实现 Web 前端自动化开发的工具,利用它能够极大的提高开发效率。在 Web 前端开发工作中有很多“重复工作”,比如压缩CSS/JS文件。而这些工作都是有规律的。找到这些规律,并编写 gulp 配置代码,让 gulp 自动执行这些“重复工作”。

2、如何使用?

要使用gulp--->就需要安装这个包----->用npm安装----->npm是node.js自带的

所以:安装node.js--->就可以使用npm--->安装gulp--->可以使用它 网址:https://nodejs.org/en/

 安装完成后,可以检查下是否安装成功。打开命令行,键入node -v,以下这样就说明成功:

可能用的到以下几个命令:

node - v查看node版本号

npm -v查看npm版本号

npm -help查看npm的帮助信息

dos命令:

cls 清除当前屏幕的内容

cd:切换路径

dir查看当前文件和目录信息

cd ..切换上层目录

接下来,我在D盘建了个文件夹,来演示,gulp-demo,

1、命令行,切换到该文件夹:

2、键入npm install gulp -g 全局安装gulp,全局意思就是电脑的任何位置都可使用gulp。

3、npm init 初始化项目的配置文件,一直按enter选择默认配置:

也可以不用按enter键配置,直接把npm init改成npm init --yes键入直接按系统默认配置。

4、本地安装npm install gulp --save-dev,同时会把这个安装写到package.json这个文件里面。

5、创建一个基本的目录结构,其中gulpfile.js名字必须,稍后gulp会从该文件提取任务

6、现在可以来压缩代码了,比如

1、压缩js

在lib.js里写入一些内容:

var Oper={
    odd:function(n1,n2){
        return n1+n2;
    },
    sbb:function(n1,n2){
        return n1-n2;
    }
}

 我们要使用压缩js,还需要安装一下压缩js的插件,在命令行键入:npm install gulp-uglify --save-dev

接下来,在gulpfile.js里面写入任务了(min-js是任务的名称):

var gulp = require( 'gulp' );
var uglify = require( 'gulp-uglify' );
gulp.task('min-js', function() {
    gulp.src('src/js/*.js')
        .pipe( uglify() )
        .pipe( gulp.dest('dist/js') );
});

在cmd里键入gulp min-js,我们就能在dist/js/里看到lib.js了,内容为:

var Oper={add:function(n,r){return n+r},sbb:function(n,r){return n-r}};

2、压缩css

一样的,先安装插件:npm install gulp-clean-css --save-dev

在src/css/里面写个style.css测试下:

*{
    margin: 0;
    padding: 0;
}
ul,ol{
    list-style: none;
}
.container{
    width: 980px;
}

一样的,在gulpfile.js里引入模块和写入任务,

var cleanCSS = require( 'gulp-clean-css' );
gulp.task('min-css', function() {
    gulp.src('src/css/*.css')
        .pipe( cleanCSS() )
        .pipe( gulp.dest('dist/css') );
});

现在使用cmd键入命令:gulp min-css,就可以在dist/css/目录下得到style.css,内容为:

*{margin:0;padding:0}ol,ul{list-style:none}.container{width:980px}

3、编译less

安装插件:npm install gulp-less --save-dev

gulefile.js内容引入模块和添加任务:

var less = require('gulp-less');
gulp.task( 'compile-less', function(){
    gulp.src( 'src/css/*.less' )
        .pipe( less() )
        .pipe( gulp.dest( 'dist/less' ) );
});

在src/css/里面写个less.less测试下:

@w:200px;
@h:200px;
*{
  margin: 0;
  padding: 0;
}
#box{
  div{
    width:@w;
    height:@h;
  }
}

在cmd命令行键入:gulp compile-less,可以看到dist/less/内得到代码:

* {
  margin: 0;
  padding: 0;
}
#box div {
  width: 200px;
  height: 200px;
}

4、合并js文件

安装插件:npm install gulp-concat --save-dev

在src/css/目录下编写俩个js文件用来测试

lib1.js:

var Oper={
    add:function(a,b){
        return a+b;
    },
    sbb:function(a,b){
        return a-b;
    }
}

lib2.js

function $(id) {
    return document.getElementById(id);
}

gulefile.js内容引入模块和添加任务:

var concat = require('gulp-concat');
gulp.task( 'concat-file', function(){
    gulp.src( 'src/js/*.js' )
        .pipe( concat('all.min.js') )
        .pipe( uglify() )
        .pipe( gulp.dest( 'dist/js' ) );
});

在cmd键入命令:gulp concat-file,我们就在dist/js/目录下得到一个all.min.js文件,内容为:

var Oper={add:function(n,t){return n+t},sbb:function(n,t){return n-t}};function $(n){return document.getElementById(n)}

5、自动监测文件变化,实时更新

gulefile.js内容添加任务:

gulp.task( 'auto', function(){
    gulp.watch( 'src/js/*.js', ['min-js'] );
    gulp.watch( 'src/css/*.css', ['min-css'] );
} );
gulp.task( 'default', ['auto'] );

在cmd命令行键入:gulp

这里只要css,js文件有变化,就会启动min-js,min-css俩个任务:

这里我把lib1.js内容替换为:

var Oper={
    add:function(a,b){
        return a+b;
    },
    sbb:function(a,b){
        return a-b;
    },
    mul:function(a,b){
        return a*b;
    }
}

在dist/js/目录下的lib1.js内容自动变成了:

var Oper={add:function(n,r){return n+r},sbb:function(n,r){return n-r},mul:function(n,r){return n*r}};

gulp使用总结:
1,安装相应的插件
2,添加相应的任务
3,执行任务

原文地址:https://www.cnblogs.com/xlj-code/p/8698589.html