gulp

1,103 阅读2分钟

官网文档:www.gulpjs.com.cn/

常用命令说明

1. --save-dev

--save:将这个文件,安装到本地项目的文件夹  
-dev:将安装的gulp信息保存到package.json中

2. 删除全局安装的gulp

npm rm --global gulp

3. 查看gulp版本

npx gulp --version

4. 查看任务

npx gulp --tasks

基础项目初始化步骤

1. 项目初始化

npm init -y (-y表示简化版本)

2. 本地项目安装gulp

npm install --save-dev gulp

安装指定版本的gulp(可以直接删除node_modules文件夹,然后再安装新的版本)
npm install --save-dev gulp@3.9.1 (最新是4.0.2,他的上一个版本是3.9.1)

3. 创建gulpfile.js任务(新建一个gulpfile.js文件)

function defaultTask(cb) {
    cb();
    console.log('执行任务defaultTask');
}
exports.default = defaultTask;


//单独调用copy任务
const { src, dest } = require('gulp');

function copy() {
    return src('*.js')
        .pipe(dest('output/'));
}

exports.copy = copy;

4. 创建npm脚本快捷运行

 "build": "gulp"   //默认调用default导出的方式
 "build-copy": "gulp copy" // 单独调用copy任务

5. 命令窗口运行

npm run build

使用babel和gulp结合使用的例子

1. 项目初始化

npm init -y

2. 本地项目安装gulp gulp-babel

npm install --save-dev gulp gulp-babel gulp-uglify gulp-rename

3. 项目安装babel依赖

npm install --save-dev @babel/core @babel/cli @babel/preset-env
npm install --save @babel/polyfill

4. 创建gulpfile.js任务(新建一个gulpfile.js文件)

const { src, dest } = require('gulp');
const babel = require('gulp-babel');
const uglify = require('gulp-uglify');
const rename = require('gulp-rename');

//分段输出,同时创建已压缩和未压缩的文件

exports.default = function() {
    return src('src/*.js')
        .pipe(babel())
        .pipe(dest('output/'))
        .pipe(uglify())
        .pipe(rename({ extname: '.min.js' }))
        .pipe(dest('output/'));
}

5. src/index.js文件内容是

const sayHi = () => {
    console.log('Hi,gulp babel');
}
sayHi();

编译后输出为:output/index.js
"use strict";
var sayHi = function sayHi() {
  console.log('Hi,gulp babel');
};
sayHi();

项目的监听

gulpfile.js

const { watch, series } = require('gulp');

function clean(cb) {
    console.log('clean run');
    cb();
}

function javascript(cb) {
    console.log('js run');
    cb();
}

function css(cb) {
    console.log('css run');
    cb();
}

//监听文件:
//第一个参数是:要监听的文件的路径
//第二个参数是:要监听文件需要执行的任务

//可以只关联一个任务
watch('src/*.css', css);
// 或者关联一个任务组合
watch('src/*.js', series(clean, javascript));

//执行的时候,在命令行  node gulpfile.js 就可以实时监听数据的变化