gulp.src html用法,gulp插件使用

news/2024/7/3 2:59:27 标签: gulp.src html用法

一、gulp-htmlmin:html文件压缩

1.下载插件npm install gulp-htmlmin

npm install gulp-file-include

2.gulpfile.js中引用插件const htmlmin = require('gulp-htmlmin');

const fileinclude = require('gulp-file-include');

3.编写任务,调用插件//html任务

//1.html文件中代码的压缩操作

//2.抽取html文件中的公共代码

gulp.task('htmlmin',(done) => {

gulp.src('./src/*.html')//*代表src下所有的HTML文件

.pipe(fileinclude())//抽离公共代码

//压缩HTML文件中的代码

.pipe(htmlmin({ collapseWhitespace: true }))//collapseWhitespace:代表压缩html代码是否压缩空格

.pipe(gulp.dest('dist'))

done()

})

注意:虽然任务是压缩文件代码和抽离公共代码的顺序,但是我们做任务是要先抽离公共代码,再去压缩文件代码

我们把公共代码放在src目录下的common目录中

8ac94710444e2bab29c05f5eca91e908.png

公共代码抽离出来后,在原本的HTML文件中引入公共代码@@include('./common/header.html')

这样执行了htmlmin这个任务后就会看到,压缩后的文件中也有了公共的头部

3e3a3dad8484a1d3e453e951e184e183.png

二、gulp-csso:压缩css

1.下载插件npm install gulp-csso

npm install gulp-less

2.gulpfile.js中引用插件const less = require('gulp-less');

const csso = require('gulp-csso');

3.编写任务,调用插件//css任务

//1.less语法转换

//2.css代码压缩

gulp.task('cssmin',(done) => {

//选择css目录下的所有less文件以及css文件

gulp.src(['./src/css/*.less','./src/css/*.css'])

.pipe(less())//将less语法转换为css语法

.pipe(csso())//将css代码进行压缩

.pipe(gulp.dest('dist/css'));//将处理的结果进行输出

done();

})

结果:

4db661c3f3f6a2c73d775406df806ad7.png

56768856994aca17fe60ecf1760d47b0.png

三、gulp-babel:JavaScript语法转化,es6转成es5

1.下载babel插件  https://www.npmjs.com/package/gulp-babel

通过bebel插件,转化成es5,通过gulp-uglify来压缩代码npm install gulp-babel @babel/core @babel/preset-env

2.在gulpfile.js文件中引入插件:const babel = require('gulp-babel');

3.编写任务//js任务

//1.es6代码转换

//2.代码压缩

gulp.task('jsmin',(done) => {

gulp.src('./src/js/*.js')

.pipe(babel({

//它可以判断当前代码的运行环境,将代码转换为当前运行环境所支持的代码

presets: ['@babel/env']

}))

.pipe(gulp.dest('dist/js'))

done();

})

4.调用插件gulp jsmin

结果:

7216baf50b8a3c9a411fb8820e3af03a.png

压缩js文件:

通过bebel插件,转化成es5,通过gulp-uglify来压缩代码npm install gulp-uglify

2.在gulpfile.js文件中引入插件:const uglify = require('gulp-uglify');

3.编写任务//js任务

//1.es6代码转换

//2.代码压缩

gulp.task('jsmin',(done) => {

gulp.src('./src/js/*.js')

.pipe(babel({

//它可以判断当前代码的运行环境,将代码转换为当前运行环境所支持的代码

presets: ['@babel/env']

}))

.pipe(gulp.dest('dist/js'))

done();

})

4.调用插件gulp jsmin

结果:

a995618c79ad2d8595af2f9915643edf.png

四、复制文件夹

一般src文件夹中还会有image文件夹和lib文件夹,需要把他们也复制到dist目录下,只要编写下面任务,执行就好了

//复制文件夹

gulp.task('copy',(done) => {

gulp.src('./src/image/*')

.pipe(gulp.dest('dist/image'));

gulp.src('./src/lib/*')

.pipe(gulp.dest('dist/lib'));

done();

})

执行:gulp copy

结果:

2fbb1a9d6aaac8f8f209aa5dcefaf24a.png

注意:如果image文件夹或者lib文件夹里面没有文件,是空的文件夹,就不会复制到dist文件夹中,就像上图中lib文件夹里面什么都没有,所以dist文件夹中也没有lib文件夹

现在这些任务都知道怎么执行了,因为是分别编写的,如果想要执行也要分别去执行他们,怎样才能执行一个任务,其他任务都能跟着执行呢?

接下来我们就来创建一个构建任务

//构建任务

gulp.task('default',['htmlmin','cssmin','jsmin','copy']);

执行:gulp default

a7208981492664488924b19d3c51019e.png

这个原因是:运行gulp项目报错:AssertionError: Task function must be specified,那是因为你安装了gulp4.0.0,gulpfile.js用的是gulp3.9.1的语法。

AssertionError: Task function must be specified错误解决方案npm i gulp@3.9.1重新安装gulp到3.91版

按gulp4.0.0重写gulpfile.js任务列表

把代码改成如下的样子就好了://构建任务

gulp.task('default',gulp.series('htmlmin','cssmin','jsmin','copy'));

执行结果:

162385f9e45cc11531060c88296ee62b.png

如果任务的名字是“default”,执行时可以省略default

e95c414ff3e66999cdcc5673bb7b5b70.png

打开App,阅读手记


http://www.niftyadmin.cn/n/1496379.html

相关文章

编译器错误信息: CS1056: 意外的字符的处理办法

错误产生: 在使用VS2015编译一个之前存在的程序代码时,总是会报错。莫名的 在某些类文件的末尾添加一些[][][][],提示Unexpected character ‘,程序出错。原因分析:由于C#代码中出现特殊全角字符,从而产…

PCL Save VTK File With Texture Coordinates 使用PCL库来保存带纹理坐标的VTK文件

我之前有一篇博客Convert PLY to VTK Using PCL 1.6.0 or PCL 1.8.0 使用PCL库将PLY格式转为VTK格式展示了如何将PLY格式文件转化为VTK格式的文件,在文章的最后提到了VTK文件保存纹理的两种方式,第一种是需要有texture的图片,然后每个点存储上…

用计算机求导,求导公式?

、公式法例如∫x^ndxx^(n1)/(n1)C∫dx/xlnxC∫cosxdxsinx等不定积分公式都应牢记,对于基本函数可直接求出原函数。2、换元法对于∫f[g(x)]dx可令tg(x),得到xw(t),计算∫f[g(x)]dx等价于计算∫f(t)w(t)dt。例如计算∫e^(-2x)dx时令t-2x,则x-1/2t,dx-1/2dt,代入后得&a…

jQuery通过Ajax向PHP服务端发送请求并返回JSON数据

服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据。本文将通过实例演示了jQuery通过Ajax向PHP服务端发送请求并返回JSON数据。阅读本文的读者应该具备jQuery、Ajax、PHP相关知识,并能熟练运用。 JSO…

国防科大天河计算机应用,国防科大天河二号位居世界超级计算机TOP500榜首

据新华社广州 6月29日电(记者 陈冀)国家超级计算广州中心应用推广大会6月29日在广州召开,科学技术部副部长曹健林向广州超级计算中心授予了“国家超级计算广州中心”和“中国(广州)计算科学服务中心”牌匾,这标志着广州跻身国家级超级计算中心行列。目前…

定制你自己的敏捷方法:选择适合用于你的敏捷方法

\本文要点\\你的团队是独一无二的。你的敏捷方法应反映团队所处的环境。\\t在团队层,通常会以时间箱或计划、演示和反思的节奏来开展工作。\\t为治理流程,研究你的WIP(在办任务)以搞明白你自己的WIP限制。\\t有些团队发现更频繁的…

计算机图形期末试题,计算机图形学 2010 期末考试试题

计算机图形学 2010 期末考试试题计算机图形学试题一、写出下列述语的全称及中文含义。1、GKS (Graphics Kernel System):图形核心系统2、PHIGS(Programmers Hierarchical Interactive Graphics System):程序员级分层结构交互图形系统(Programmers Hierarchical Inte…

计算机二级宝典考试题库,计算机二级宝典

计算机二级宝典是一款关于计算机考试备考的软件平台,不需要在电脑上练题,手机也能做题,这款软件上有着非常齐全的往年的例题,都有着非常俱全的解析,无论你身在何地,只要打开这款软件就可以开始做题练习&…