欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

gulp使用

程序员文章站 2024-03-24 17:45:46
...

入门指南

1. 全局安装 gulp:

$ npm install --global gulp

2. 作为项目的开发依赖(devDependencies)安装:

$ npm install --save-dev gulp

3. 在项目根目录下创建一个名为 gulpfile.js 的文件:

var gulp = require('gulp');

gulp.task('default', function() {
  // 将你的默认的任务代码放在这
});

4. 运行 gulp:

$ gulp

默认的名为 default 的任务(task)将会被运行,在这里,这个任务并未做任何事情。

想要单独执行特定的任务(task),请输入 gulp <task> <othertask>


二. 插件的使用



1.less

var gulp = require("gulp"),
less = require("gulp-less");

gulp.task("less",function(){
returngulp.src("./less/*.less")//这个地址是less文件夹地址
.pipe(less())
.pipe(gulp.dest("./css/")); //这个地址是目标文件夹地址
});


2.gulpautoprefixer添加css前缀

var gulp =require("gulp"),
autoprefixer =require("gulp-autoprefixer");

gulp.task('testAutoFx',function () {
gulp.src('src/css/index.css')//目标文件
.pipe(autoprefixer({
browsers: ['last 2 versions','Android >= 4.0'],
cascade:true,//是否美化属性值 默认:true 像这样:
//-webkit-transform: rotate(45deg);
// transform: rotate(45deg);
remove:true//是否去掉不必要的前缀 默认:true
}))
.pipe(gulp.dest('dist/css'));//输出目录
});

3.2、gulp-autoprefixer的browsers参数详解 (传送门):https://github.com/ai/browserslist#queries

● last 2 versions: 主流浏览器的最新两个版本

● last 1 Chrome versions: 谷歌浏览器的最新版本

● last 2 Explorer versions: IE的最新两个版本

● last 3 Safari versions: 苹果浏览器最新三个版本

● Firefox >= 20: 火狐浏览器的版本大于或等于20

● iOS 7: IOS7版本

● Firefox ESR: 最新ESR版本的火狐

● > 5%: 全球统计有超过5%的使用率




3. gulp-cssmin //压缩css

var gulp =require("gulp"),
cssmin =require('gulp-cssmin');//引入cssmin
rename =require("gulp-rename");//引入rename为了重命名文件
gulp.task('mincss',function () {
gulp.src('less/*.css')//目标文件
.pipe(cssmin())
.pipe(rename({suffix:'.min'}))//重命名加的后缀
.pipe(gulp.dest('./less'));//输出地址
});





4.gulp-imagemin //图片压缩

var gulp =require("gulp"),
imagemin =require('gulp-imagemin');

gulp.task('imagemin', ()=>
gulp.src('./img/*')//目标文件
.pipe(imagemin())
.pipe(gulp.dest('./images'))//输出地址
);



5.

gulp-uglify 压缩js

var gulp = require("gulp"),
uglify =require('gulp-uglify'),
pump =require('pump');
gulp.task('compress',function (cb) {
pump([
gulp.src('lib/*.js'),//目标文件
uglify(),
gulp.dest('dist')//输出目录
],
cb
);
});


6.gulp-useref
var gulp =require('gulp'),
useref =require('gulp-useref'),
gulpif =require('gulp-if'),
uglify =require('gulp-uglify'),
minifyCss =require('gulp-clean-css');
gulp.task('html',function () {
returngulp.src('app/*.html')
.pipe(useref())
.pipe(gulpif('*.js',uglify()))
.pipe(gulpif('*.css',minifyCss()))
.pipe(gulp.dest('dist'));
});

html中写
<html>
<head>
<!-- build:css css/combined.css -->
<linkhref="css/one.css"rel="stylesheet">
<linkhref="css/two.css"rel="stylesheet">
<!-- endbuild -->
</head>
<body>
<!-- build:js scripts/combined.js -->
<scripttype="text/javascript"src="scripts/one.js"></script>
<scripttype="text/javascript"src="scripts/two.js"></script>
<!-- endbuild -->
</body>
</html>

这样就可以将css,js自动合并 并压缩


7.gulp-rev 添加版本号

gulp.task('default', ()=>
gulp.src('./css/*.css')
.pipe(rev())
.pipe(gulp.dest('./'))

.pipe(rev.manifest())//- 生成一个rev-manifest.json
.pipe(gulp.dest('./rev'))
);


8.gulp-concat 合并多个文件

9.gulp-htmlmin 压缩html

10.gulp-rev-collector


11.gulp-filter和gulp-rev-replace联合发布压缩并替换文件,还加了哈西马前缀

vargulp =require('gulp');
varrev =require('gulp-rev');
varrevReplace =require('gulp-rev-replace');
varuseref =require('gulp-useref');
varfilter =require('gulp-filter');
varuglify =require('gulp-uglify');
varcsso =require('gulp-csso');

gulp.task("index",function() {
varjsFilter =filter("**/*.js", {restore:true});
varcssFilter =filter("**/*.css", {restore :true});
varindexHtmlFilter =filter(["**/*","!**/index.html"], {restore:true});
returngulp.src("./index.html")
.pipe(useref())// Concatenate with gulp-useref
.pipe(jsFilter)
.pipe(uglify())// Minify any javascript sources
.pipe(jsFilter.restore)
.pipe(cssFilter)
.pipe(csso())// Minify any CSS sources
.pipe(cssFilter.restore)
.pipe(indexHtmlFilter)
.pipe(rev())
.pipe(indexHtmlFilter.restore)
.pipe(revReplace())
.pipe(gulp.dest('public'));
});