-
Notifications
You must be signed in to change notification settings - Fork 2
初探gulp[学习笔记1] #9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
目前已在公司项目中使用gulp来作为基本的构建工具。 |
'use strict';
var gulp = require("gulp");
//引入依赖
var rev = require("gulp-rev"),//生成文件md5码
revReplace = require("gulp-rev-collector"),//引用替换
changed = require("gulp-changed"),//判断文件是否变化
minifycss = require("gulp-clean-css"),//css压缩
concat = require("gulp-concat"),//文件合并
rename = require("gulp-rename"),//文件重命名
jshint = require("gulp-jshint"),//js检验
minijs = require("gulp-uglify"),//js压缩
plumber = require('gulp-plumber');//错误信息提示
// css压缩、重命名、合并
gulp.task('css-mini',['getDate'], function() {
return gulp.src('css/**/*.css',{ base: 'css' })//输入文件路径
// .pipe(concat("index.min.css"))
.pipe(changed('minicss'))
.pipe(rename({ suffix: '_'+DateVersion }))
.pipe(plumber())
.pipe(minifycss({
advanced: false,//类型:Boolean 默认:true [是否开启高级优化(合并选择器等)]
compatibility: 'ie7',//保留ie7及以下兼容写法 类型:String 默认:''or'*' [启用兼容模式; 'ie7':IE7兼容模式,'ie8':IE8兼容模式,'*':IE9+兼容模式]
keepBreaks: false,//类型:Boolean 默认:false [是否保留换行]
keepSpecialComments: '*' //保留所有特殊前缀 当你用autoprefixer生成的浏览器前缀,如果不加这个参数,有可能将会删除你的部分前缀
}))//压缩css文件
.pipe(gulp.dest('minicss'));//文件输出路径
});
// js校验、压缩、重命名、合并
gulp.task('js', function() {
return gulp.src('js/**/**.js',{ base: 'js' })//输入文件路径
//.pipe(concat("index.min.js"))
//.pipe(rename({ suffix: '.min' }))
.pipe(plumber())
//.pipe(jshint())
//.pipe(jshint.reporter('default'))//输出错误报告
.pipe(minijs({
mangle: false,//类型:Boolean 默认:true 是否修改变量名
compress: false,//类型:Boolean 默认:true 是否完全压缩
// preserveComments: 'all' //保留所有注释
}))//压缩js文件
.pipe(gulp.dest('minijs'));//文件输出路径
});
//默认执行的任务并启动监控
gulp.task('default', ['js', 'css-mini'], function(){
var jsWatch = gulp.watch('js/**/*.js',['js']);
var cssWatch = gulp.watch('css/**/*.css',['css-mini']);
jsWatch.on('change', function(event) {
console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
});
cssWatch.on('change', function(event) {
console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
});
}); |
{
"name": "minifile",
"version": "1.0.0",
"description": "文件压缩工程",
"main": "gulpfile.js",
"dependencies": {
"gulp": "^3.9.1",
"gulp-changed": "^1.3.0",
"gulp-jshint": "^2.0.1",
"gulp-concat": "^2.6.0",
"gulp-clean-css": "^2.0.11",
"gulp-plumber": "^1.1.0",
"gulp-minify-css": "^1.2.4",
"gulp-notify": "^2.2.0",
"gulp-rename": "^1.2.2",
"gulp-rev": "^7.1.0",
"gulp-rev-collector": "^1.0.5",
"gulp-uglify": "^1.5.4",
"jshint": "^2.9.2"
},
"devDependencies": {},
"scripts": {
"test": "gulp"
},
"keywords": [
"压缩",
"css",
"js"
],
"author": "chenyajun",
"license": "MIT"
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
初探gulp[学习笔记1]
gulp是一个很方便的自动化构建工具,可以增强你的工作流程!同类的工具还有grunt等。但是gulp是一种基于流的自动化构建工具。
gulp的主要优势为:
通过代码优于配置的策略,Gulp 让简单的任务简单,复杂的任务可管理。
利用 Node.js 流的威力,你可以快速构建项目并减少频繁的 IO 操作。
Gulp 严格的插件指南确保插件如你期望的那样简洁高质得工作。
通过最少的 API,掌握 Gulp 毫不费力,构建工作尽在掌握:如同一系列流管道。
初探笔记
和grunt相比gulp的优势都在上面了,入门也是很简单的最少的API,随着社区的壮大插件也在不断的层出不穷,从而用起来适用的场景也更加广泛。
所以gulp在使用过程中还是要跟着项目走,单独安装到项目目录下,方便插件等的管理。
The text was updated successfully, but these errors were encountered: