-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
67 lines (54 loc) · 1.72 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
const gulp = require('gulp');
const gutil = require('gulp-util');
const sass = require('gulp-sass');
const stylus = require('gulp-stylus');
const less = require('gulp-less');
const autoprefixer = require('gulp-autoprefixer');
const rename = require('gulp-rename');
const basePath = './src';
const devOutput = './dev';
// Sass
gulp.task('sass', () => {
return gulp.src(`${basePath}/**/*.scss`)
.pipe(sass({ outputStyle: 'expanded' }).on('error', sass.logError))
.pipe(rename('styles-sass.css'))
.pipe(gulp.dest(devOutput));
});
gulp.task('sass:watch', ['sass'], () => {
gulp.watch(`${basePath}/sass/**/*.scss`, ['sass']);
});
// Stylus
gulp.task('stylus', () => {
return gulp.src(`${basePath}/styles.styl`)
.pipe(stylus().on('error', gutil.log))
.pipe(rename('styles-stylus.css'))
.pipe(gulp.dest(devOutput));
});
gulp.task('stylus:watch', ['stylus'], () => {
gulp.watch(`${basePath}/stylus/**/*.styl`, ['stylus']);
});
// Less
gulp.task('less', () => {
return gulp.src(`${basePath}/styles.less`)
.pipe(less().on('error', gutil.log))
.pipe(rename('styles-less.css'))
.pipe(gulp.dest(devOutput));
});
gulp.task('less:watch', ['less'], () => {
gulp.watch(`${basePath}/less/**/*.less`, ['less']);
});
// Build
gulp.task('sass:build', () => {
return gulp.src(`${basePath}/**/*.scss`)
.pipe(sass({ outputStyle: 'compressed' }).on('error', sass.logError))
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(rename('css-atoms.css'))
.pipe(gulp.dest('./dist'));
});
// Tasks
gulp.task('serve', ['sass:watch', 'stylus:watch', 'less:watch']);
gulp.task('build', ['sass:build']); // use sass version for building dist file
gulp.task('default', ['serve']);