-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.js
113 lines (105 loc) · 2.91 KB
/
gulpfile.js
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
//引入依赖
var gulp = require('gulp');
var sourcemaps = require('gulp-sourcemaps');
var combiner = require('stream-combiner2');
var path = require('path');
var livereload = require('gulp-livereload');
//引入任务列表
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var react = require('gulp-react');
var less = require('gulp-less');
var del = require('del');
var babel = require('gulp-babel');
var webpack = require('gulp-webpack');
var gulpFilter = require('gulp-filter');
//引入插件
var LessPluginCleanCSS = require('less-plugin-clean-css'),
LessPluginAutoPrefix = require('less-plugin-autoprefix'),
cleancss = new LessPluginCleanCSS({
advanced: true
}),
autoprefix = new LessPluginAutoPrefix({
browsers: ["last 2 versions"]
});
//var imagemin = require('gulp-imagemin');
//设置路径
var paths = {
scripts: ['public/js/**/*.js'],
images: 'public/img/**/*',
less: ['src/less/**/*.less'],
react: ['src/jsx/**/*.jsx'],
};
//配置清理任务
gulp.task('clean', function(cb) {
// del(['build'], cb);
});
gulp.task('cleancss', function(cb) {
del(['public/css'], cb);
});
//配置react任务
// gulp.task('react', function() {
// var combined = combiner.obj([
// gulp.src(paths.react).pipe(babel()).pipe(browserify({
// insertGlobals: true,
// extensions: ['.jsx']
// })),
// sourcemaps.init(),
// react(),
// sourcemaps.write('.'),
// gulp.dest('public/react')
// ]);
// combined.on('error', console.error.bind(console));
// return combined;
// });
//配置webpack任务
gulp.task('webpack', function() {
var combined = combiner.obj([
gulp.src('src/jsx/index.jsx'), webpack(require('./webpackconfig')),
gulp.dest('./public')
]);
});
//配置less任务
gulp.task('less', function() {
var filter = gulpFilter(['*','!**/pub.less'],{restore: true});
var combined = combiner.obj([
gulp.src(paths.less),
filter,
less({
plugins: [autoprefix, cleancss]
}),
sourcemaps.write('.'),
// concat('result.css'),
gulp.dest('./public/css'),
livereload()
]);
combined.on('error', console.error.bind(console));
return combined;
});
// gulp.task('livereload', function(){
// livereload();
// });
//配置JS任务
gulp.task('scripts', function() {
return gulp.src(paths.scripts)
.pipe(sourcemaps.init())
.pipe(uglify())
//.pipe(concat('all.min.js'))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('public/js'));
});
//配置压缩图片任务
//gulp.task('images', ['clean'], function() {
// return gulp.src(paths.images)
// .pipe(imagemin({optimizationLevel: 5}))
// .pipe(gulp.dest('build/img'));
//});
//配置watch任务
gulp.task('watch', function() {
livereload.listen();
gulp.watch(paths.less, ['less']);
// gulp.watch(paths.react, ['react']);
// gulp.watch(paths.jade, ['livereload']);
});
//配置默认任务
gulp.task('default', ['less', 'watch','webpack']);