美文网首页
Gulp 学习笔记

Gulp 学习笔记

作者: _于曼丽_ | 来源:发表于2018-10-12 09:36 被阅读0次

准备工作

  1. 新建项目目录
mkdir learn-gulp
  1. 在项目根目录下安装 Gulp
cd learn-gulp
npm init -y
npm install gulp -D
  1. 修改 package.json 文件
"scripts": {
  "gulp": "gulp"
}
  1. 在项目根目录下创建 gulpfile.js 文件
touch gulpfile.js

创建任务

执行特定任务

/* gulpfile.js */

const gulp = require('gulp')

gulp.task('hello', function () {
  console.log('Hello World!')
})
npm run gulp hello

执行默认任务

/* gulpfile.js */

const gulp = require('gulp')

gulp.task('hello', function () {
  console.log('Hello World!')
})

gulp.task('default', ['hello'])
npm run gulp

使用场景

拷贝单个文件

gulp.task('copy-index', function () {
  gulp.src('index.html').pipe(gulp.dest('dist'))
})

拷贝多个文件

gulp.task('images', function () {
  // 拷贝 .jpg 结尾的文件
  gulp.src('images/*.jpg').pipe(gulp.dest('dist/images'))
  // 拷贝 .jpg 和 .png 结尾的文件
  gulp.src('images/*.{jpg,png}').pipe(gulp.dest('dist/images'))
  // 拷贝 ./images 目录下的所有的文件。拷贝 ./images 目录下的子目录,但是不拷贝子目录下的文件
  gulp.src('images/*').pipe(gulp.dest('dist/images'))
  // 拷贝 ./images 目录以及二级目录下的所有的文件。拷贝 ./images 目录下的子目录,同时拷贝子目录下的文件
  gulp.src('images/*/*').pipe(gulp.dest('dist/images'))
  // 拷贝 ./images 目录下的所有级别的目录下的所有文件
  gulp.src('images/**/*').pipe(gulp.dest('dist/images'))
})

拷贝多个目录

gulp.task('data', function () {
  // 拷贝 xml 目录下的所有 xml 文件,json 目录下的所有 json 文件,但是不拷贝 json 目录下的 secret- 开头的.json 文件
  gulp.src(['xml/*.xml', 'json/*.json', '!json/secret-*.json']).pipe(gulp.dest('dist/data'))
})

任务依赖

// 执行 build 任务之前,需要并发执行 copy-index images data 这三个任务
gulp.task('build', ['copy-index', 'images', 'data'], function () {
  console.log('编译成功!')
})

监听文件变化

gulp.task('watch', function () {
  // 当 index.html 文件改变的时候,执行 copy-index 任务
  gulp.watch('index.html', ['copy-index'])
  // 当 images 目录下的所有 .jpg 和 .png 文件改变的时候 (添加 删除 修改),执行 images 任务
  gulp.watch('images/**/*.{jpg,png}', ['images'])
  // 监听 xml 文件和 json 文件,但是不监听 json 目录下的 secret- 开头的.json 文件
  gulp.watch(['xml/*.xml', 'json/*.json', '!json/secret-*.json'], ['data'])
})

插件

这里查找 Gulp 的插件,在项目根目录下通过 npm 安装相关插件,然后在 gulpfile.js 中引入插件,进行相关操作

编译 Sass 文件

npm install gulp-sass -D
const gulp = require('gulp')
const sass = require('gulp-sass')

gulp.task('sass', function () {
  gulp.src('stylesheets/**/*.sass')
    .pipe(sass())
    .pipe(gulp.dest('dist/css'))
})

创建本地服务器并且实时预览

npm install gulp-connect -D
const gulp = require('gulp')
const connect = require('gulp-connect')

gulp.task('server', function () {
  connect.server({
    root: 'dist',
    livereload: true
  })
})

gulp.task('copy-index', function () {
  gulp.src('index.html')
    .pipe(gulp.dest('dist'))
    .pipe(connect.reload())
})

gulp.task('watch', function () {
  gulp.watch('index.html', ['copy-index'])
})

gulp.task('default', ['server', 'watch'])

合并、压缩 js 文件

npm install gulp-concat gulp-uglify gulp-rename -D
const gulp = require('gulp')
const concat = require('gulp-concat')
const uglify = require('gulp-uglify')
const rename = require('gulp-rename')

gulp.task('scripts', function () {
  gulp.src('javascript/**/*.js')
    .pipe(concat('vender.js'))
    .pipe(gulp.dest('dist/js'))
    .pipe(uglify())
    .pipe(rename('vender.min.js'))
    .pipe(gulp.dest('dist/js'))
})

压缩 css 文件

npm install gulp-sass gulp-minify-css -D
const gulp = require('gulp')
const sass = require('sass')
const minifyCSS = require('gulp-minify-css')

gulp.task('sass', function () {
  gulp.src('stylesheets/**/*.sass')
    .pipe(sass())
    .pipe(minifyCSS())
    .pipe(gulp.dest('dist/css'))
})

压缩图像

npm install gulp-imagemin -D
const gulp = require('gulp')
const imagemin = require('gulp-imagemin')

gulp.task('images', function () {
  gulp.src('images/**/*')
    .pipe(imagemin())
    .pipe(gulp.dest('dist/images'))
})

相关文章

  • Gulp学习

    参照Gulp for Beginners来学习Gulp基本内容。以下为学习记录笔记。 安装Gulp 首先需要安装N...

  • gulp4.0版入门及常用插件,gulp创建前端项目

    本篇为gulp学习笔记。 gulp安装及创建前端项目 1,先安装node,npm,cnpm 2,全局安装gulp脚...

  • gulp学习笔记

    1】npm install gulp -g 全局安装gulp,查看安装是否成功gulp -v(首先安装node,查...

  • Gulp 学习笔记

    准备工作 新建项目目录 在项目根目录下安装 Gulp 修改 package.json 文件 在项目根目录下创建 g...

  • gulp学习笔记

    需要用到的基本插件有 步骤 先安装 再引用 然后调用 基本语法如下 task(新建) src (读取资源) pip...

  • GULP学习笔记

    bond order potential 计算在 bondordermd.f90 ReaxFF 1444 eij ...

  • gulp学习笔记

    gulp 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;它不仅能对网站资源进行优化...

  • 学习笔记《gulp》

    gulp 的作者是 Eric Schoffstall,今年应该只有22岁,The DigitalOcean Tea...

  • Gulp学习笔记

    P1 简介 gulp是基于Nodejs的自动任务运行器, 它能自动化地完成 javascript/coffee/s...

  • [学习笔记]gulp学习

    1. 学习地址 gulp入门文章, 每一步都很详细,适合初学者 www.w3ctrain.com/2015/12/...

网友评论

      本文标题:Gulp 学习笔记

      本文链接:https://www.haomeiwen.com/subject/sivyaftx.html