Gulp 从0开始

时间:2023-03-08 16:16:06
Gulp 从0开始
http://www.w3ctech.com/topic/134  (该文章有很多错误)
http://segmentfault.com/a/1190000000372547
http://www.cnblogs.com/chyingp/p/gulp-introduction.html 
先node init 生成package文件
$ npm install -g gulp  安装gulp命令行工具  OR  npm install -g gulp --registry=http://registry.npm.taobao.org
$ npm install gulp --save-dev 在项目中安装gulp
Gulp配置文件名必须是 gulpfile.js 使用的是gulp 'taskname'命令  (不是node啦!) 
第一个Gulp
先试试最常用的jshint  https://www.npmjs.com/package/gulp-jshint  (官方文档很详细)
基本照着官方文档来的  但是官方文档还是有点问题....
var gulp = require('gulp'),
jshint = require('gulp-jshint'),
concat = require('gulp-concat'),
rename = require('gulp-rename'),
uglify = require('gulp-uglify');
var map = require('map-stream'); gulp.task('minify', function () {
gulp.src('../resources/module/quality_data/js/*.js')
.pipe(concat('concat.js'))
.pipe(gulp.dest('build')) // 拼起来后输出到build文件夹
.pipe(rename({suffix: '.min'})) //rename压缩后的文件名
.pipe(uglify())
.pipe(gulp.dest('build'))
}); var myReporter = map(function (file, cb) {
if (!file.jshint.success) {
console.log('JSHINT fail in '+file.path);
file.jshint.results.forEach(function (err) {
if (err) {
// console.log(err);
console.log(' '+file.path + ': line ' + err.error.line + ', col ' + err.error.character + ', code ' + err.error.code + ', ' + err.error.reason);
}
});
}
cb(null, file);
}); gulp.task('lint', function() {
return gulp.src('../resources/module/**/*.js') // **的意思是所有文件夹及里面的子文件夹 *s是子目录 不递归
.pipe(jshint())
// .pipe(myReporter); //reporter 是一个自定义的报告
.pipe(jshint.reporter('default', { verbose: true }));
});