gulp轻松上手到掌握


由于已经学习webpack,所以有些基础知识将不再细节讲解
webpack.

一、安装

首先需要安装node,这里采用傻瓜式安装。
在这里插入图片描述
然后我这里是全局安装gulp-cli,命令为npm i -g gulp-cli,本地安装为npm i -D gulp-cli;使用gulp -v查看版本信息
在这里插入图片描述
然后在自己的项目根目录下安装gulp(记得先初始化npm init),命令为npm i -D gulp;这时使用gulp -v查看版本信息
在这里插入图片描述
到此我们的gulp就安装好了,对于gul的安装根据自己的需求来决定是全局安装还是本地安装

gulp安装正常,但是查看gulp -v和使用gulp的时候报错

原因:缺少环境变量或环境变量错误。

查找环境变量的方法:在dos下输入npm config get prefix就会显示一个地址,这个地址就是那个系统变量PATH
例如:
在这里插入图片描述

环境变量path中添加路径:C:\Program Files\nodejs\node_cache

二、上手使用

1.创建 gulpfile 文件

在项目的根目录下创建一个名为 gulpfile.js 的文件,并在文件中输入以下内容:

function defaultTask(cb) {
  // place code for your default task here
  console.log('jimo');//这里是我们用来测试输出的
  cb();
}
exports.default = defaultTask

当前路径下使用gulp命令,即可运行
在这里插入图片描述

2.series和parallel方法使用

//gulpfile.js
const {series, parallel} = require('gulp');//利用es6结构导出两个方法
function html(cb){
  console.log('html调用了');
  cb();//cb为函数执行完毕
}
function css(cb){
  console.log('css调用了');
  cb();
}
function js(cb){
  console.log('js调用了');
  cb();
}
  1. 如果exports.default = series(html,css),执行gulp
    在这里插入图片描述
    即series会按顺序先执行完html方法,在执行css方法

  2. 如果exports.default = parallel(html,css),执行gulp
    在这里插入图片描述
    即parallel会同时执行html和css方法

  3. 如果exports.default = series(html,parallel(css,js)),执行gulp
    在这里插入图片描述
    即可以混合使用

注:series中如果某一方法出现错误,则不会再继续执行后面代码;parallel中某方法出现错误,不一定会停止,看各个方法执行时间

3.src和dest方法使用

首先创建以下文件
在这里插入图片描述

//gulpfile.js
const {src, dest} = require('gulp');
exports.default = function(){
  return src('src/js/*.js')
    .pipe(dest('dist/js'))
}

如果有less>>css>>压缩>>输出,则每一个阶段都会输出文件,而每次每个环节都需要pipe(管道)

执行gulp
在这里插入图片描述
生成我们设置的路径文件
在这里插入图片描述

1.安装插件gulp-uglify

删除最先的dist/index.js文件
使用npm i -D gulp-uglify命令,安装gulp-uglify插件,实现压缩打包
在这里插入图片描述

//gulpfile.js
const {src, dest} = require('gulp');
const uglify = require('gulp-uglify');
exports.default = function(){
  return src('src/js/*.js')
  	//这里是环节的执行阶段
    .pipe(uglify())
    .pipe(dest('dist/js'))
}
//src/index.js
var arr = [1,2,3,4,5,6];//由于是commonJs环境,所以不要使用es6语法
var result = 0;
for(var i = 0;i < arr.length;i ++){
    result += arr[i];
};
console.log(result);

在这里插入图片描述
在这里插入图片描述

2.安装插件gulp-rename

删除前面的dist/index.js
使用npm i -D gulp-rename命令,安装gulp-rename插件,实现对打包文件的重命名
在这里插入图片描述

const {src, dest} = require('gulp');
const uglify = require('gulp-uglify');
const rename = require('gulp-rename');
exports.default = function(){
  return src('src/js/*.js')
    .pipe(dest('dist/js'))   //不使用插件打包后自动命名
    .pipe(uglify())
    .pipe(rename({extname: '.min.js'}))     //使用插件打包后重命名
    .pipe(dest('dist/js'))
}

在这里插入图片描述
在这里插入图片描述

4.watch文件监控

const {watch} = require('gulp');
watch('src/css/*',{
  delay: 1000,
},function(cb){
  console.log('css被修改了');
  cb();
});

使用gulp命令后,会实时监控目标文件
在这里插入图片描述
使用Ctrl+c退出监控

三、实用模板

下载需要的插件
在这里插入图片描述

const {series, src, dest, watch} = require('gulp');//导出我们需要的模板
const htmlClean = require('gulp-htmlclean');//压缩html代码的插件
const less = require('gulp-less');//处理less样式的代码
const cleanCss = require('gulp-clean-css');//压缩css代码的插件
const stripDebug = require('gulp-strip-debug');//去除js中用来调试的代码语句
const uglify = require('gulp-uglify');//压缩js代码的插件
const imgMin = require('gulp-imagemin');//压缩图片的插件
const connect = require('gulp-connect');//服务器插件

const folder = {
  src:'src/',
  dist:'dist/'
}
function html(){
  return src(folder.src+'html/*')
    .pipe(htmlClean())
    .pipe(dest(folder.dist+'html/'))
    .pipe(connect.reload());//热更新
}
function css(){
  return src(folder.src+'css/*')
    .pipe(less())
    .pipe(cleanCss())
    .pipe(dest(folder.dist+'css/'))
    .pipe(connect.reload());
}
function js(){
  return src(folder.src+'js/*')
    .pipe(stripDebug())
    .pipe(uglify())
    .pipe(dest(folder.dist+'js/'))
    .pipe(connect.reload());
}
function images(){
  return src(folder.src+'images/*')
   	.pipe(imgMin())
    .pipe(dest(folder.dist+'images/'))
}
function server(cb){
  connect.server({
    port: '1573', //端口
    livereload: true //自动刷新
  });
}

watch(folder.src+'html/*',function(cb){//监控文件
  html();
  cb();
});
watch(folder.src+'css/*',function(cb){
  css();
  cb();
});
watch(folder.src+'js/*',function(cb){
  js();
  cb();
});
exports.default = series(html,css,js,images,server);//依次执行方法

创建src文件,里面为我们的项目文件
在这里插入图片描述
在这里插入图片描述
运行命令后即会生成打包后的项目,并打开我们的服务器,并且监控文件我们项目的文件,实现文件更新,网页刷新。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞羽逐星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值