forked from Luperi/wheelzoom
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
91 lines (80 loc) · 2.53 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
var gulp = require('gulp')
var plugins = require('gulp-load-plugins')()
var source = 'src'
var dest = 'dist'
var targets = {
ie: '9',
firefox: '17'
}
var coffeeOptions = {
require: true,
bare: false,
sourcemaps: true,
inlineMap: false
}
var coffeeSource = [
source + '/js/__header.coffee',
source + '/js/__modules.coffee',
source + '/js/parts/**/*.coffee',
source + '/js/init.coffee'
]
var coffee = function () {
return gulp.src(coffeeSource)
.pipe(plugins.sourcemaps.init())
.pipe(plugins.concat('init.coffee'))
.pipe(plugins.coffee(coffeeOptions))
.pipe(plugins.babel({ presets: [['env', { targets: targets }]], plugins: ['@babel/plugin-transform-classes'] }))
.pipe(plugins.rename('wheelzoom.js'))
.pipe(plugins.sourcemaps.write('.'))
.pipe(gulp.dest(dest))
}
var minifyCoffee = function () {
return gulp.src(coffeeSource)
.pipe(plugins.sourcemaps.init())
.pipe(plugins.concat('init.coffee'))
.pipe(plugins.coffee(coffeeOptions))
.pipe(plugins.babel({ presets: [['env', { targets: targets }]], plugins: ['@babel/plugin-transform-classes'] }))
.pipe(plugins.minify({
ext: {
min: '.min.js'
}
}))
.pipe(plugins.rename('wheelzoom.min.js'))
.pipe(plugins.sourcemaps.write('.'))
.pipe(gulp.dest(dest))
}
gulp.task('lint', function () {
return gulp.src(coffeeSource)
.pipe(plugins.eslint())
.pipe(plugins.eslint.format('stylish', process.stdout))
.pipe(plugins.eslint.failOnError())
})
var css = function () {
return gulp.src(source + '/sass/*.scss')
.pipe(plugins.sourcemaps.init())
.pipe(plugins.sass())
.pipe(plugins.sourcemaps.write('.'))
.pipe(gulp.dest(dest))
}
var minifyCss = function () {
return gulp.src(source + '/sass/*.scss')
.pipe(plugins.sourcemaps.init())
.pipe(plugins.sass())
.pipe(plugins.cleanCss({ compatibility: 'ie9' }))
.pipe(plugins.rename('wheelzoom.min.css'))
.pipe(plugins.sourcemaps.write('.'))
.pipe(gulp.dest(dest))
}
// SPECIFIC TASKS
gulp.task('style', gulp.parallel(css, minifyCss))
gulp.task('script', gulp.parallel(coffee, minifyCoffee))
// GENERAL TASKS
gulp.task('clean', function () {
return gulp.src('dist/*', { read: false }).pipe(plugins.clean())
})
gulp.task('build', gulp.series('clean', 'style', 'script'))
gulp.task('watch', gulp.series('clean', function multipleWatch () {
gulp.watch('src/sass/**/*', { ignoreInitial: false }, gulp.series('style'))
gulp.watch('src/js/**/*', { ignoreInitial: false }, gulp.series('script'))
}))
gulp.task('test', gulp.series('lint'))