Gulp基础教程

介绍

Gulp.js是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务。
随着互联网的逐步发展,前端前景也越来越好,随之而来的 web 业务也变得复杂化和多元化,所以各种前端构建工具也随之产生,常见的有 Grunt 、 Gulp 、 Webpack 三种。本手册就给大家介绍一下 Gulp。
Gulp.js 是一个前端构建工具,与 grunt.js 相比,Gulp.js 无需写一大堆繁杂的配置参数,AP I也非常简单,学习起来很容易,而且 Gulp.js 使用的是 node.js 中 stream 来读取和操作数据,其速度更快。如果你还没有使用过前端构建工具,或者觉得 grunt.js 太难用的话,那就尝试一下Gulp.js吧。

使用Gulp压缩js

npm install gulp-uglify

一、新建一个 gulpfile.js 文件
chapter2
└── gulpfile.js

二、在 gulpfile.js 中编写代码

// 获取 gulp
var gulp = require('gulp')

require() 是 node (CommonJS)中获取模块的语法。
在 gulp 中你只需要理解 require() 可以获取模块。

三、获取 gulp-uglify 组件

// 获取 uglify 模块(用于压缩 JS)
var uglify = require('gulp-uglify')

四、创建压缩任务

// 压缩 js 文件
// 在命令行使用 gulp script 启动此任务
gulp.task('script', function() {
    // 1\. 找到文件
    gulp.src('js/*.js')
    // 2\. 压缩文件
        .pipe(uglify())
    // 3\. 另存压缩后的文件
        .pipe(gulp.dest('dist/js'))
})

● gulp.task(name, fn) - 定义任务,第一个参数是任务名,第二个参数是任务内容。
● gulp.src(path) - 选择文件,传入参数是文件路径。
● gulp.dest(path) - 输出文件
● gulp.pipe() - 管道,你可以暂时将 pipe 理解为将操作加入执行队列

使用Gulp压缩CSS

一、安装 gulp-minify-css 模块
二、参照 使用 gulp 压缩 JS 创建 gulpfile.js 文件编写代码

// 获取 gulp
var gulp = require('gulp')

// 获取 minify-css 模块(用于压缩 CSS)
var minifyCSS = require('gulp-minify-css')

// 压缩 css 文件
// 在命令行使用 gulp css 启动此任务
gulp.task('css', function () {
    
    
    // 1\. 找到文件
    gulp.src('css/*.css')
    // 2\. 压缩文件
        .pipe(minifyCSS())
    // 3\. 另存为压缩文件
        .pipe(gulp.dest('dist/css'))
})

// 在命令行使用 gulp auto 启动此任务
gulp.task('auto', function () {
    
    
    // 监听文件修改,当文件被修改则执行 css 任务
    gulp.watch('css/*.css', ['css'])
});

// 使用 gulp.task('default') 定义默认任务
// 在命令行使用 gulp 启动 css 任务和 auto 任务
gulp.task('default', ['css', 'auto'])

三、创建 css 文件

在 gulpfile.js 对应目录创建 css 文件夹,并在 css/ 目录下创建 a.css 文件。

四、运行 gulp 查看效果

使用Gulp压缩图片

一、安装 gulp-imagemin 模块

npm install gulp-imagemin

二、创建 gulpfile.js 文件编写代码

// 获取 gulp
var gulp = require('gulp');

// 获取 gulp-imagemin 模块
var imagemin = require('gulp-imagemin')

// 压缩图片任务
// 在命令行输入 gulp images 启动此任务
gulp.task('images', function () {
    
    
    // 1. 找到图片
    gulp.src('images/*.*')
    // 2. 压缩图片
        .pipe(imagemin({
    
    
            progressive: true
        }))
    // 3. 另存图片
        .pipe(gulp.dest('dist/images'))
});

// 在命令行使用 gulp auto 启动此任务
gulp.task('auto', function () {
    
    
    // 监听文件修改,当文件被修改则执行 images 任务
    gulp.watch('images/*.*)', ['images'])
});

// 使用 gulp.task('default') 定义默认任务
// 在命令行使用 gulp 启动 images 任务和 auto 任务
gulp.task('default', ['images', 'auto'])

三、在 images/ 目录下存放图片

在 gulpfile.js 对应目录创建 images 文件夹,并在 images/ 目录下存放图片。

四、运行 gulp 查看效果

使用 gulp 编译 LESS

安装

npm install gulp-less

基本用法

// 获取 gulp
var gulp = require('gulp')
// 获取 gulp-less 模块
var less = require('gulp-less')

// 编译less
// 在命令行输入 gulp images 启动此任务
gulp.task('less', function () {
    
    
    // 1. 找到 less 文件
    gulp.src('less/**.less')
    // 2. 编译为css
        .pipe(less())
    // 3. 另存文件
        .pipe(gulp.dest('dist/css'))
});

// 在命令行使用 gulp auto 启动此任务
gulp.task('auto', function () {
    
    
    // 监听文件修改,当文件被修改则执行 images 任务
    gulp.watch('less/**.less', ['less'])
})

// 使用 gulp.task('default') 定义默认任务
// 在命令行使用 gulp 启动 less 任务和 auto 任务
gulp.task('default', ['less', 'auto'])

使用 gulp 编译 Sass

安装

npm install gulp-ruby-sass

基本用法

// 获取 gulp
var gulp = require('gulp')
// 获取 gulp-ruby-sass 模块
var sass = require('gulp-ruby-sass')

// 编译sass
// 在命令行输入 gulp sass 启动此任务
gulp.task('sass', function() {
    
    
    return sass('sass/') 
    .on('error', function (err) {
    
    
      console.error('Error!', err.message);
   })
    .pipe(gulp.dest('dist/css'))
});

// 在命令行使用 gulp auto 启动此任务
gulp.task('auto', function () {
    
    
    // 监听文件修改,当文件被修改则执行 images 任务
    gulp.watch('sass/**/*.scss', ['sass'])
});

// 使用 gulp.task('default') 定义默认任务
// 在命令行使用 gulp 启动 sass 任务和 auto 任务
gulp.task('default', ['sass', 'auto'])

gulpjs文件编辑

var gulp= require('gulp');
var gulp= require('gulp-rev');给每个文件添加版本号更具每个文件的哈希码
var gulp= require('gulp-filter');过滤器筛选出来,对其处理
var gulp= require('gulp-uglify');压缩js代码
var gulp= require('gulp-rev-replace');
var gulp= require('gulp-useref');利用注释写一些合并文件的命令
var gulp= require('gulp-csso');压缩css

gulp.task('default',function () {
    
    
    var jsFilter = filter('**/*.js',{
    
    restore:true});
    var cssFilter = filter('**/*.css',{
    
    restore:true});
    var indexHtmlFilter = filter('**/*','!**/index.html',{
    
    restore:true});

    return gulp.src('src/index.html')
        .pipe(useref())
        .pipe(jsFilter)
        .pipe(uglify())
        .pipe(jsFilter.restore)
        .pipe(cssFilter)
        .pipe(csso())
        .pipe(cssFilter.restore)
        .pipe(indexHtmlFilter)
        .pipe(rev())
        .pipe(indexHtmlFilter.restore);

});

猜你喜欢

转载自blog.csdn.net/weixin_36662706/article/details/122035474
今日推荐