1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
| var gulp = require('gulp');
var imagemin = require('gulp-imagemin'); //引入图片压缩模块
var scriptmin = require('gulp-uglify'); //引入js压缩模块
var gulpless = require('gulp-less'); //引入less转换模块
var concat = require('gulp-concat'); //引入合并代码模块
var csso = require('gulp-csso'); //压缩css
/*
gulp.task -- 定义任务
gulp.src -- 找到需要执行任务的文件
gulp.dest -- 执行任务的文件的去处
gulp.watch -- 观察文件是否发生改变
执行任务 gulp + 任务名称 + 回车
*/
// 拷贝文件
gulp.task("copyHtml", function () {
//pipe后面对应的地址就是将前面路径文件拷贝复制到哪里去
gulp.src("src/*.html").pipe(gulp.dest("dist"))
});
//图片压缩
//安装模块 npm install --save-dev gulp-imagemin
gulp.task("imageMin", function () {
gulp.src('src/images/*')
.pipe(imagemin([
imagemin.gifsicle({
interlaced: true
}),
imagemin.jpegtran({
progressive: true
}),
imagemin.optipng({
optimizationLevel: 7
}),
imagemin.svgo({
plugins: [{
removeViewBox: true
},
{
cleanupIDs: false
}
]
})
]))
.pipe(gulp.dest('dist/images'))
})
// 压缩js
//安装js压缩模块 npm i gulp-uglify --save-dev
gulp.task("scriptmin", function () {
//pipe后面对应的地址就是将前面路径文件拷贝复制到哪里去
gulp.src(["src/js/*.js", "!src/js/not.js"])
.pipe(scriptmin())
.pipe(gulp.dest("dist/js"))
});
//压缩css
gulp.task("csso",function(){
// 把1.js和2.js合并为main.js,输出到dest/js目录下
gulp.src("src/css/*.css").pipe(concat('main.css')).pipe(csso()).pipe(gulp.dest('./dest/css'));
})
// 转换less
//安装js压缩模块 npm i gulp-less --save-dev
gulp.task("gulpless", function () {
//pipe后面对应的地址就是将前面路径文件拷贝复制到哪里去
gulp.src("src/css/*.less")
.pipe(gulpless())
.pipe(gulp.dest("dist/css"))
});
//代码合并
//安装 npm i gulp-concat --save-dev
gulp.task("concat", function () {
gulp.src("src/js/*.js")
.pipe(concat("main.js"))
.pipe(scriptmin()) //在合并的时候压缩js
.pipe(gulp.dest("dist/js"))
})
//这里是目前使用的,合并文件之后再次进行压缩
gulp.task("taskName",function(){
// 把1.js和2.js合并为main.js,输出到dest/js目录下
gulp.src("src/js/*.js").pipe(concat('main.js')).pipe(scriptmin()).pipe(gulp.dest('./dest/js'));
})
//监听文件是否发生改变
gulp.task("watch", function () {
gulp.watch("src/*.html", ["copyHtml"]);
gulp.watch("src/css/*.less", ["gulpless"]);
gulp.watch("src/images/*", ["imageMin"]);
gulp.watch("src/js/*.js", ["scriptmin"]);
})
//如果直接执行 gulp 那么就是运行任务名称为‘default’的任务,后面数组代表所需要执行的任务列表
gulp.task('default', ["copyHtml", "gulpless", "imageMin", "taskName","scriptmin","csso"]);
//stream-combiner2模块下面代码可打印gulp报错信息
var combiner = require('stream-combiner2');
var uglify = require('gulp-uglify');
var gulp = require('gulp');
gulp.task('test', function() {
var combined = combiner.obj([
gulp.src('bootstrap/js/*.js'),
uglify(),
gulp.dest('public/bootstrap')
]);
// any errors in the above streams will get caught
// by this listener, instead of being thrown:
combined.on('error', console.error.bind(console));
return combined;
}); |
共 0 条评论关于"使用gulp对js文件和css文件进行合并和压缩"
最新评论