使用Gulp进行代码压缩的步骤以及配置
一、安装步骤
1.首先确定是否安装了node.js,如果未安装,请先安装node.js;
2.确定是否安装了包管理工具npm,如未安装请安装:npm install npm -g;
3.安装gulp: npm install gulp --save-dev;(至于为什么是--save-dev,因为我们只是在开发环境中会用到,生产发布是用不到它的)
4.安装用于html、css、js代码压缩常用的插件,分别为:gulp-htmlmin、gulp-cssnano、gulp-uglify;
npm install --save-dev gulp-htmlmin;
npm install --save-dev gulp-cssnano;
npm install --save-dev gulp-uglify;
5.在根目录新建文件gulpfile.js ,这个文件是使用gulp压缩的配置文件,相关配置如下;
'use strict'; var gulp = require('gulp'); //压缩html var htmlmin = require('gulp-htmlmin'); gulp.task('html', function(){ gulp.src(['./src/app/*.html']) .pipe(htmlmin({ collapseWhitespace: true,//压缩HTML removeComments: true,//清除HTML注释 removeScriptTypeAttributes: true,//删除<script>的type="text/javascript" removeStyleLinkTypeAttributes: true,//删除<link>的type="text/css" minifyJS: true,//压缩页面JS minifyCSS: true//压缩页面CSS })) .pipe(gulp.dest('dist/src/app')); }); //压缩css var cssnano = require('gulp-cssnano'); gulp.task('style', function(){ gulp.src(['./css/*.css']) .pipe(cssnano()) .pipe(gulp.dest('dist/css')); }); //压缩js var uglify = require('gulp-uglify'); gulp.task('script', function(){ gulp.src(['./src/static/*.js']) .pipe(uglify({ mangle: false// 跳过函数名,使其不被压缩,函数名也压缩可改为true })) .pipe(gulp.dest('dist/src/static')); }); //同步代码变化 gulp.task('dist', function(){ gulp.watch(['./src/app/*.html'], ['html']); gulp.watch(['./css/*.css'], ['style']); gulp.watch(['./src/static/*.js'], ['script']); }); gulp.task("default", ["html","style","script","dist"]);
6.初始化得到文件package.json:npm init ;(简单点一路回车即可)
7.一切妥当,命令行执行gulp,等待完成即可。
注:(1).这里的配置进行了适当简写,如果项目不是新建立的,而是在项目原有基础上增加页面,为了提升压缩效率可以不匹配所有的html、css、js文件,只配置你新增的文件即可,如下例子:
//压缩html var htmlmin = require('gulp-htmlmin'); gulp.task('html', function(){ gulp.src(['./src/app/level2HK.html','./src/app/index.html']) .pipe(htmlmin({ collapseWhitespace: true,//压缩HTML removeComments: true,//清除HTML注释 removeScriptTypeAttributes: true,//删除<script>的type="text/javascript" removeStyleLinkTypeAttributes: true,//删除<link>的type="text/css" minifyJS: true,//压缩页面JS minifyCSS: true//压缩页面CSS })) .pipe(gulp.dest('dist/src/app')); });
gulp.src(['路径a','路径b'])中是支持数组形式入参的,当然也可以直接字符串入参 gulp.src('路径a')
(2)本处只列举了代码的初步压缩模块,适合刚刚接触gulp的初学者,其实gulp还有其他很多优秀的插件,如代码的合并、混淆等等插件,用户可以根据自己的项目实际需要进行安装并进行相应配置;<br /> 如:代码合并插件 gulp-concat;<br /> 文件名称修改插件 gulp-rename;<br /> 图片压缩插件 gulp-imagemin;<br /> sass文件编译插件 gulp-sass;<br /> 检查改变状态 gulp-changed;<br /> 如下对js的压缩、合并、修改名称:<br />
gulp.task('scripts', function() { return gulp.src('./src/static/*.js') .pipe(concat('main.js')) //合并所有js到main.js .pipe(gulp.dest('./src/static')) //输出main.js到文件夹 <br /> .pipe(rename({suffix: '.min'})) //rename压缩后的文件名 <br /> .pipe(uglify()) //压缩 <br /> .pipe(gulp.dest('./src/static')); //输出 <br /> });
如下对图片的压缩配置:
// 压缩图片 gulp.task('images', function () { gulp.src('./src/images/*.*') .pipe(changed('dist/images', {hasChanged: changed.compareSha1Digest})) .pipe(imageMin({ progressive: true,// 无损压缩JPG图片 svgoPlugins: [{removeViewBox: false}]// 不移除svg的viewbox属性 })) .pipe(gulp.dest('dist/images')) .pipe(browserSync.reload({stream:true})); });
相关推荐
星辰的笔记 2020-07-04
zhongweinan 2020-06-10
jiangfulai 2020-04-18
hlihaihong 2020-01-13
kaosini 2020-01-12
kaosini 2020-01-12
FranksTD 2019-12-19
hlihaihong 2019-12-15
hlihaihong 2019-12-14
我有一只小松鼠 2019-12-14
FranksTD 2019-12-13
SeekerTime 2019-11-17
yuetingzhuying 2015-10-17
福叔 2019-09-06
kaosini 2019-09-06
RainyX 2019-07-01
hlihaihong 2019-07-01
idnochinese 2019-07-01
UndefineOrNull 2019-07-01