• gulp使用方法详解


    1.gulp的基本介绍

    Gulp.js是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务。Gulp.js是基于Node.js构建的,利用Node.js流的威力,你可以快速构建项目并减少频繁的IO操作。Gulp.js源文件和你用来定义任务的Gulp文件都是通过JavaScript源码来实现的

    2.gulp的安装

    1. gulp使用基于node环境,安装使用gulp前需要安装node(node的安装和使用详见day33的内容)
    2. npm(cnpm) i gulp-cli -g 命令全局安装gulp-cli,gulp的命令行工具
    3. 新建一个项目文件夹并进入,npm init 命令初始化当前项目文件夹包管理文件,系统会自动生成package.json文件
    4. npm(cnpm) i gulp@3 --save-dev(-D) 命令当前项目文件夹下安装gulp
    5. 项目文件夹根目录下创建gulpfile.js文件
    6. 根目录下起命令 gulp 跑起默认task

    3.gulp的常用方法

    gulp.task

    定义一个使用 Orchestrator 实现的任务(task)

    gulp.src

    输出(Emits)符合所提供的匹配模式(glob)或者匹配模式的数组(array of globs)的文件。 将返回一个 Vinyl files 的 stream 它可以被 piped 到别的插件中

    gulp.dest

    能被 pipe 进来,并且将会写文件。并且重新输出(emits)所有数据,因此你可以将它 pipe 到多个文件夹。如果某文件夹不存在,将会自动创建它

    gulp.watch

    监听文件或者文件夹的变化,并执行任务

    4.gulp的常见任务

    编译sass
    const gulp = require('gulp');
    const autoprefixer = require('gulp-autoprefixer');
    const cleancss = require('gulp-clean-css');
    const rename = require("gulp-rename");
    const sass = require('gulp-sass');
    
    gulp.task('sass', () => {
    return gulp.src(['src/sass/*.scss', 'src/sass/*.sass'])
      .pipe(sass())          // 通过sass插件将sass编译为css,如果需要编译less,则改用less插件
      .pipe(autoprefixer({//自动补全css3前缀
        cascade: false   
      }))
      .pipe(gulp.dest('./dist/css'))
      .pipe(cleancss())  //压缩css
      .pipe(rename({   //重命名
        suffix: '.min'
      }))
      .pipe(gulp.dest('./dist/css'));
    })
    
    操作js
    const babel = require('gulp-babel');
    const uglify = require('gulp-uglify');
    
    gulp.task('js', () => {
      return gulp.src('src/js/*.js')
      .pipe(babel({             // 通过babel插件将ES6转成ES5
        presets: ['env']
      }))
      .pipe(gulp.dest('./dist/js'))
      .pipe(uglify())           // 丑化js代码
      .pipe(rename({            // 重命名
        suffix: '.min'          // 添加后缀
      }))
      .pipe(gulp.dest('./dist/js'))
    })
    
    压缩图片
    gulp.task('image', () => {
      return gulp.src('./src/images/*')
        .pipe(imagemin([
          imagemin.gifsicle({
            interlaced: true
          }),
          imagemin.jpegtran({
            progressive: true
          }),
          imagemin.optipng({
            optimizationLevel: 5
          }),
          imagemin.svgo({
            plugins: [{
              removeViewBox: true
            },
            {
              cleanupIDs: false
            }
            ]
          })
        ], {
          verbose: true
        }))
        .pipe(gulp.dest('./dist/src/images'));
    })
    
    复制文件
    gulp.task('copy', () => {
      return gulp.src('./index.html')
        .pipe(gulp.dest('./dist'))
    })
    
    合并文件
    gulp.task('default',function(){
        gulp.src("./gulp/**/*.js")
        .pipe(concat("main.js"))//合并
        .pipe(uglify())//压缩
        .pipe(rename("main.min.js"))//重命名
        .pipe(gulp.dest("./dist/"))
    })
    
  • 相关阅读:
    [moka同学笔记]八、Yii2.0课程笔记(魏曦老师教程)[授权]
    [moka同学转载]Yii2 中国省市区三级联动
    [moka同学笔记]四、Yii2.0课程笔记(魏曦老师教程)[匿名函数的使用操作]
    [moka同学笔记]Linux命令基本格式及目录处理命令
    [moka同学笔记]使用composer 安装yii2以及遇到的问题
    [moka同学笔记]MySql语句整理
    [moka同学笔记]三、Yii2.0课程笔记(魏曦老师教程)关联字段增加搜索
    Android笔记:ListView
    Android笔记:去除标题栏
    Android笔记:内部类
  • 原文地址:https://www.cnblogs.com/piaoyi1997/p/13362336.html
Copyright © 2020-2023  润新知