https://blog.csdn.net/weixin_40817115/article/details/81095176
近日在学习《Web前端自动化构建》,关于gulp的css压缩插件,书中先后提到了两个,分别是gulp-cssnano和gulp-minify-css,而执行npm install gulp-minify-css –save-dev时,控制台提示如下:
npm WARN deprecated gulp-minify-css@1.2.4: Please use gulp-clean-css
gulp-minify-css@1.2.4
至此,一共出现了三个压缩css的gulp插件。
对比如下
压缩能力:
相同css文件分别用这三个插件进行压缩,
gulp-cssnano:2.55KB;
gulp-minify-css: 2.44KB;
gulp-clean-css: 2.55KB;
维护:
gulp-cssnano: current tags: 2.1.3 Published 4 months ago;
附npm地址:https://www.npmjs.com/package/gulp-cssnano
gulp-minify-css: 1.2.4 Published 2 years ago Please use gulp-clean-css;
附npm地址:https://www.npmjs.com/package/gulp-minify-css
gulp-clean-css: 3.9.4 Published 2 months ago ;
附npm地址:https://www.npmjs.com/package/gulp-clean-css
使用:
鉴于gulp-minify-css已被废弃,在此仅对比gulp-cssnano和gulp-clean-css
gulp-cssnano
安装:
npm install gulp-cssnano --save-dev
1
示例:
const gulp = require('gulp');
const cssnano = require('gulp-cssnano');
gulp.task('styles', () => {
return gulp.src('./main.css')
.pipe(cssnano())
.pipe(gulp.dest('dist'));
});
1
2
3
4
5
6
7
8
Source Maps:
const gulp = require('gulp');
const cssnano = require('gulp-cssnano');
const sourcemaps = require('gulp-sourcemaps');
gulp.task('styles', () => {
return gulp.src('main.css')
.pipe(sourcemaps.init())
.pipe(cssnano())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('dist'));
});
1
2
3
4
5
6
7
8
9
10
11
gulp-clean-css
安装:
npm install gulp-clean-css --save-dev
1
示例:
const gulp = require('gulp');
const cleanCSS = require('gulp-clean-css');
gulp.task('minify-css', () => {
return gulp.src('styles/*.css')
.pipe(cleanCSS({compatibility: 'ie8'}))
.pipe(gulp.dest('dist'));
});
1
2
3
4
5
6
7
8
gulp-clean-css支持回调函数
const gulp = require('gulp');
const cleanCSS = require('gulp-clean-css');
gulp.task('minify-css', () => {
return gulp.src('styles/*.css')
.pipe(cleanCSS({debug: true}, (details) => {
console.log(`${details.name}: ${details.stats.originalSize}`);
console.log(`${details.name}: ${details.stats.minifiedSize}`);
}))
.pipe(gulp.dest('dist'));
});
1
2
3
4
5
6
7
8
9
10
11
示例代码中可以获取css压缩前后的stats信息,同时它也提供了file name以及path用于其他分析。
Source Maps:
const gulp = require('gulp');
const cleanCSS = require('gulp-clean-css');
const sourcemaps = require('gulp-sourcemaps');
gulp.task('minify-css',() => {
return gulp.src('./src/*.css')
.pipe(sourcemaps.init())
.pipe(cleanCSS())
.pipe(sourcemaps.write())
.pipe(gulp.dest('dist'));
});
转载于:https://blog.51cto.com/maplebb/2310197