zoukankan      html  css  js  c++  java
  • gulp 入门

    公司项目中用的代码构建工具是gulp,现在对用到的gulp插件的用法做一下总结。

    gulp是基于node.js的自动任务运行器,我们用它来完成javascript、css、sass/less、html/css、image等文件的合并和压缩,以及浏览器自动刷新、监听文件等等。

    首先要安装node.js环境,然后全局安装gulp(使用的是淘宝镜像的cnpm)): 

    cnpm install gulp -g

    然后在项目文件夹下新建一个名为gulpfile.js的文件,这个文件就是gulp的主文件,在这个文件中编写gulp任务。

    var gulp = require('gulp');

    这行代码告诉node去node_modules中查找gulp包,先局部查找,找不到再去全局环境中找,然后将其赋给变量gulp,就可以使用了。

    在项目文件夹下打开node命令行窗口,安装gulp包,--save-dev是为了将安装的gulp的版本信息写入package.json文件中,这个文件中保存了和项目相关的各种依赖关系,在这里就是项目所安装的插件:

    cnpm install gulp --save-dev

    OK,现在我们就可以使用gulp了。gulp的使用方法非常简单:

    gulp.task('taskName',function(){  
      return gulp.src('文件地址')
          .pipe(导入到gulp插件中)
          .pipe(someplugin())
          .pipe(gulp.dest('要输出文件的地址'));
    });

    任务名称是自己起的,然后在node命令行窗口中执行命令即可:

    gulp taskName

    我们的项目中用到了如下插件:

    var less = require('gulp-less'),//css预处理
        concat = require('gulp-concat'),//合并插件
        uglify = require('gulp-uglify'),//压缩js的插件
        minifyCss = require('gulp-minify-css'),//压缩CSS插件
        rename = require('gulp-rename'),//重命名插件
        plumber = require('gulp-plumber'),//错误监听处理
        autoprefixer = require('gulp-autoprefixer');

    将它们依次安装并保存在package.json文件中后,就可以使用了。

    gulp API主要有四个:gulp.src,gulp.dest,gulp.task,gulp.watch;只要合理使用这四个API就可以方便迅速的配置文件,gulp真的是很方便.

    //将less文件编译成css并压缩

    gulp.task('less',function(){
       return gulp.src('app/src/less/*.less')
           .pipe(autoprefixer({
              browsers:['last 2 versions','Android >= 4.0'],
              cascade:true,//是否美化属性值 默认:true 像这样:
              //-webkit-transform:rotate(45deg);
              //        transform:rotate(45deg);
              remove:true //是否去掉不必要的前缀 默认:true
           }))
           .pipe(less())
           .pipe(gulp.dest('app/src/css'))
           .pipe(minifyCss())
           .pipe(rename({suffix:'.min'}))
           .pipe(gulp.dest('app/bulid/css'));
    });

    //合并压缩js文件

    gulp.task('concatjs',function(){
       return gulp.src('app/src/js/cat/*.js')
           .pipe(plumber())//防止出错停止
           .pipe(concat('index.js'))
           .pipe(uglify())
           .pipe(rename({suffix:'.min'}))
           .pipe(gulp.dest('app/bulid/js/'))
    });
    

    //移动文件

    gulp.task('remove',function(){
       return gulp.src('app/src/*/**.html')
           .pipe(gulp.dest('app/bulid'));
    });
    

      

    //监听事件

    gulp.task('watch',['remove','concatjs','less'],function(){
       gulp.watch('app/src/less/*.less',['less']);
        gulp.watch('app/src/js/**/*.js',['js']);
      ......//其它任务
    });
    

      

      

  • 相关阅读:
    Entity Framework开源了
    动态执行超过4000个字符的SQL
    微软针对Access提供了免费的SQL Server移植工具——SSMA
    网络采集库NCrawler
    使用WinSCP软件在windows和Linux中进行文件传输
    Open Source C# (Mono Compatible) Library for Sending Push Notifications To iOS (iPhone/iPad APNS), Android (C2DM), Windows Phone Apps
    Mono 2.11.3 发布包含微软的 Entity Framework
    谷歌发布 AngularJS 1.0,允许扩展HTML语法
    Accord.NET Framework
    CentOS源码编译安装Nginx和tcp_proxy module
  • 原文地址:https://www.cnblogs.com/YuKiee/p/6811926.html
Copyright © 2011-2022 走看看