-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.js
75 lines (73 loc) · 2.59 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
var rollup = require('gulp-rollup-mep')
var gulp = require('gulp')
var babel = require('rollup-plugin-babel')
var eslint = require('rollup-plugin-eslint')
var resolve = require('rollup-plugin-node-resolve')
var commonjs = require('rollup-plugin-commonjs')
var replace = require('rollup-plugin-replace')
var uglify = require('rollup-plugin-uglify')
var postcss = require('rollup-plugin-postcss')
var simplevars = require('postcss-simple-vars')
var nested = require('postcss-nested')
var cssnext = require('postcss-cssnext')
var cssnano = require('cssnano')
var cache = {}
process.on('unhandledRejection', error => {
console.error('unhandledRejection', error);
// process.exit(1) // To exit with a 'failure' code
});
gulp.task('watch', function() {
gulp.watch('src/assert/scripts/**/*', ['rollup'])
})
gulp.task('rollup', function() {
return gulp.src('src/assert/scripts/*.js')
.pipe(
rollup({
plugins: [
postcss({
plugins: [
simplevars(),
nested(),
cssnext({ warnForDuplicates: false }),
cssnano()
],
extensions: ['.css']
}),
resolve({
jsnext: true,
browser: true,
main: true
}),
commonjs(),
eslint({
exclude: [
'src/assert/styles/**'
]
}),
babel({
exclude: 'node_modules/**',
presets: [
[
'es2015',
{
'modules': false
}
]
],
plugins: [
'external-helpers'
],
babelrc: false
}),
replace({
// exclude: 'node_modules/**',
ENV: JSON.stringify(process.env.NODE_ENV || 'development')
}),
(process.env.NODE_ENV === 'production' && uglify())
]
}), cache,
function(bundle, filePath) {
// cache[filePath] = bundle
})
.pipe(gulp.dest('src/public/js'))
})