gulp入门文档

gulp是基于node实现的,所以我们首先需要安装node。
下载node地址:打开 https://nodejs.org/ 点击绿色的 INSTALL 按钮下载安装 node。
安装好node之后,我们开始安装gulp。
一、安装gulp
npm 是 node 的包管理工具,可以利用他安装 gulp 所需的包。(在安装node时已经自动安装了npm)
首先创建一个文件夹news,打开Git Bash Here
在命令行输入:

npm install -g gulp

若一直没安装成功,请使用 cnpm 安装(npm的国内加速镜像)

二、安装依赖
在命令行输入:

npm install
npm init -y
npm i -D gulp
npm i -D gulp-uglify

三、压缩文件
1、压缩JS文件
(1)、在news文件夹中新建一个’gulpfile.js’文件,;
(2)、在’gulpfile.js’里面编写代码,

//获取gulp:
var gulp = require('gulp');
(3)获取'gulp-uglify'组件:
var uglify = require('gulp-uglify')
(4)创建压缩任务
//压缩 js 文件
gulp.task('script', function() {
    // 1. 找到文件
    gulp.src('js/*.js')
    // 2. 压缩文件
        .pipe(uglify())
    // 3. 另存压缩后的文件
        .pipe(gulp.dest('dist/js'))
})

(5)、跳转gulpfile.js 所在目录
(6)、使用命令运行script 任务
在控制台输入 gulp 任务名 可运行任务,此处我们输入 gulp script 回车。
注意:输入 gulp script 后命令行将会提示错误信息
// 在命令行输入
gulp script

Error: Cannot find modu le ‘gulp-uglify’

at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)

Cannot find module 'gulp-uglify' 没有找到 gulp-uglify 模块。
(7)、安装 gulp-uglify 模块
使用 npm 安装 gulp-uglify 到本地

npm install gulp-uglify

接着输入 gulp script 执行任务
(8)、编写 js 文件
我们发现 gulp 没有进行任何压缩操作。因为没有js这个目录,也没有 js 目录下的 .js 后缀文件。
创建 a.js 文件,并编写如下内容

// a.js
function demo (msg) {
    alert('--------\r\n' + msg + '\r\n--------')
}
demo('Hi')

接着在命令行输入 gulp script 执行任务
gulp 会在命令行当前目录下创建 dist/js/ 文件夹,并创建压缩后的 a.js 文件。
(9)、检测代码修改自动执行任务
在’gulpfile.js’中编写如下代码
// 监听文件修改,当文件被修改则执行 script 任务
gulp.watch(‘js/*.js’, [‘script’]);
// 在命令行使用 gulp auto 启动此任务
gulp.task(‘auto’, function () {

// 监听文件修改,当文件被修改则执行 script 任务
gulp.watch('js/*.js', ['script'])

})
接着在命令行输入 gulp auto,自动监听 js/*.js 文件的修改后压缩js。

$gulp auto
[21:09:45] Using gulpfile ~/Documents/code/gulp-book/demo/chapter2/gulpfile.js
[21:09:45] Starting 'auto'...
[21:09:45] Finished 'auto' after 9.19 ms

此时修改 js/a.js 中的代码并保存。命令行将会出现提示,表示检测到文件修改并压缩文件。

[21:11:01] Starting 'script'...
[21:11:01] Finished 'script' after 2.85 ms

至此,我们完成了 gulp 压缩 js 文件的自动化代码编写。

2、压缩css文件
(1)、安装 gulp-minify-css模块
在命令行输入

npm install gulp-minify-css

(2)、参照 使用 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'])

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

/* a.css */
body a{
    color:pink;
}

(4)、运行 gulp 查看效果
在命令行输入 gulp +回车
你将看到命令行出现如下提示

gulp
[17:01:19] Using gulpfile ~/Documents/code/gulp-book/demo/chapter3/gulpfile.js
[17:01:19] Starting 'css'...
[17:01:19] Finished 'css' after 6.21 ms
[17:01:19] Starting 'auto'...
[17:01:19] Finished 'auto' after 5.42 ms
[17:01:19] Starting 'default'...
[17:01:19] Finished 'default' after 5.71 μs

gulp 会创建 dist/css 目录,并创建 a.css 文件,此文件存放压缩后的 css 代码。

3、压缩images文件
(1)、安装 gulp-imagemin模块
提示:你需要使用命令行的 cd 切换至对应目录再进行安装操作和 gulp 启动操作。
在命令行输入

npm install gulp-imagemin

(2)、创建 gulpfile.js 文件编写代码
在对应目录创建 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'])

(3)、在 images/ 目录下存放图片
gulpfile.js 对应目录创建 images 文件夹,并在 images/ 目录下存放图片。
(4)、运行 gulp 查看效果
在命令行输入 gulp +回车
你将看到命令行出现如下提示

gulp
[18:10:42] Using gulpfile ~/Documents/code/gulp-book/demo/chapter4/gulpfile.js
[18:10:42] Starting 'images'...
[18:10:42] Finished 'images' after 5.72 ms
[18:10:42] Starting 'auto'...
[18:10:42] Finished 'auto' after 6.39 ms
[18:10:42] Starting 'default'...
[18:10:42] Finished 'default' after 5.91 μs
[18:10:42] gulp-imagemin: Minified 3 images (saved 25.83 kB - 5.2%)

4、压缩less文件
(1)、安装 gulp-less模块
提示:你需要使用命令行的 cd 切换至对应目录再进行安装操作和 gulp 启动操作。
在命令行输入

npm install gulp-less

(2)、创建 gulpfile.js 文件编写代码
在对应目录创建 gulpfile.js 文件并写入如下内容:

// 获取 gulp
var gulp = require('gulp')
// 获取 gulp-less 模块
var less = require('gulp-less')
 
// 编译less
// 在命令行输入 gulp less 启动此任务
gulp.task('less', function () {
    // 1. 找到 less 文件
    gulp.src('less/**.less')
    // 2. 编译为css
        .pipe(less())
    // 3. 另存文件
        .pipe(gulp.dest('dist/less'))
});
 
// 在命令行使用 gulp auto 启动此任务
gulp.task('auto', function () {
    // 监听文件修改,当文件被修改则执行 less 任务
    gulp.watch('less/**.less', ['less'])
})
 
// 使用 gulp.task('default') 定义默认任务
// 在命令行使用 gulp 启动 less 任务和 auto 任务
gulp.task('default', ['less', 'auto'])

(3)、创建 less 文件
gulpfile.js 对应目录创建 less 文件夹,并在 less/ 目录下创建 a.less 文件。

/* a.less */
.import{
        a{
                color:red;
    }
}

(4)、运行 gulp 查看效果
在命令行输入 gulp +回车

gulp

压缩后的less文件为

.import a{
  color: red;
}

5、压缩sass文件
本章使用的是 ruby-sass 如果你不方便安装 ruby 或编译速度慢,建议使用 gulp-sass

请务必理解如下章节后阅读此章节:

  1. [安装 Node 和 gulp]
  2. [使用 gulp 压缩 JS]

    Sass 是一种 CSS 的开发工具,提供了许多便利的写法,大大节省了开发者的时间,使得 CSS 的开发,变得简单和可维护。

    本章使用 ruby-sass 编译 css,若你没有安装 ruby 和 sass 请移步 使用ruby.taobao安装 Sass

    (1)、安装gulp-ruby-sass模块

提示:你需要使用命令行的 cd 切换至对应目录再进行安装操作和 gulp 启动操作。
在命令行输入

npm install gulp-ruby-sass

(2)、创建 gulpfile.js 文件编写代码
在对应目录创建 gulpfile.js 文件并写入如下内容:

// 获取 gulp
var gulp = require('gulp')
// 获取 gulp-ruby-sass 模块
var sass = require('gulp-ruby-sass')
 
// 编译sass
// 在命令行输入 gulp sass 启动此任务
gulp.task('sass', function() {
    return sass('sass/**.scss') 
    .on('error', function (err) {
      console.error('Error!', err.message);
   })
    .pipe(gulp.dest('dist/sass'))
});
 
 
// 在命令行使用 gulp auto 启动此任务
gulp.task('auto', function () {
    // 监听文件修改,当文件被修改则执行 images 任务
    gulp.watch('sass/**/*.scss', ['sass'])
});
 
// 使用 gulp.task('default') 定义默认任务
// 在命令行使用 gulp 启动 sass 任务和 auto 任务
gulp.task('default', ['sass', 'auto'])

(3)、创建sass文件
gulpfile.js 对应目录创建 sass 文件夹,并在 less/ 目录下创建 a.scss 文件。

/* a.scss */
.import{
        a{
                color:red;
    }
}

(4)、运行 gulp 查看效果
在命令行输入 gulp +回车

gulp

压缩后的sass文件为

.import a{
  color: red;
}

ES6转换成ES5的命令

npm i -D gulp-babel
npm i -D babel-core
npm i -D babel-preset-env

[完整代码]
(https://github.com/nimojs/gul…

    原文作者:MRZYD
    原文地址: https://segmentfault.com/a/1190000011840958
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞