-
Notifications
You must be signed in to change notification settings - Fork 3
/
gulpfile.js
87 lines (77 loc) · 2.48 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
const gulp = require('gulp')
const sass = require('gulp-sass')
// const uglify = require('gulp-uglify')
// const streamify = require('gulp-streamify')
const rename = require('gulp-rename')
const gutil = require('gulp-util')
const source = require('vinyl-source-stream')
const budo = require('budo')
const browserify = require('browserify')
const resetCSS = require('node-reset-scss').includePath
const babelify = require('babelify').configure({
presets: ['es2020']
})
const history = require('connect-history-api-fallback')
const entry = ['./app', './component', './model']
const entryDemo = './index.demo.js'
const outfile = 'choo-md-editor.js'
const production = process.env.NODE_ENV === 'production'
function handleError (err) {
gutil.log(err)
gutil.beep()
this.emit('end')
}
// our CSS pre-processor
gulp.task('sass', function () {
gulp.src('./src/sass/main.scss')
.pipe(sass({
outputStyle: production ? 'compressed' : undefined,
includePaths: [ resetCSS ]
}).on('error', sass.logError))
.pipe(gulp.dest('./app'))
})
// the development task
gulp.task('watch', ['sass'], function (cb) {
// watch SASS
gulp.watch('src/sass/*.scss', ['sass'])
// dev server
budo(entryDemo, {
serve: 'bundle.js', // end point for our <script> tag
stream: process.stdout, // pretty-print requests
live: true, // live reload & CSS injection
dir: 'app', // directory to serve
open: true, // whether to open the browser
browserify: {
transform: babelify, // browserify transforms
debug: true
},
middleware: [history()]
}).on('exit', cb)
})
gulp.task('sass-bundle', () => {
gulp.src('./src/sass/main.scss')
.pipe(sass({
outputStyle: production ? 'compressed' : undefined,
includePaths: [ resetCSS ]
}).on('error', sass.logError))
.pipe(rename('choo-md-editor.css'))
.pipe(gulp.dest('./'))
gulp.src('./src/sass/bulma-ext.scss')
.pipe(sass({
outputStyle: production ? 'compressed' : undefined,
includePaths: [ resetCSS ]
}).on('error', sass.logError))
.pipe(rename('choo-md-editor.bulma.css'))
.pipe(gulp.dest('./'))
})
// the distribution bundle task
gulp.task('bundle', ['sass-bundle'], function () {
var bundler = browserify(entry, { transform: babelify, debug: false })
.bundle()
return bundler
.pipe(source(outfile))
// .pipe(streamify(uglify()))
.on('error', handleError)
.pipe(gulp.dest('./dist'))
})
gulp.task('default', ['watch'])