forked from dennisreimann/uiengine
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
56 lines (45 loc) · 1.32 KB
/
gulpfile.js
File metadata and controls
56 lines (45 loc) · 1.32 KB
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
const gulp = require('gulp')
const webpack = require('webpack')
const webpackStream = require('webpack-stream')
const UIengine = require('@uiengine/core')
const src = {
assets: ['./src/assets/**/*'],
tokens: ['./src/tokens/*.yml']
}
const dist = {
root: '../tmp',
assets: '../tmp/assets'
}
const isDev = process.env.NODE_ENV !== 'production'
// run webpack as a task dependency, because its output
// is required for the vue adapter (see adapter options)
gulp.task('uiengine', ['webpack'], done => {
const opts = {
debug: isDev,
serve: isDev,
watch: isDev ? src.tokens : false
}
UIengine.build(opts)
.then(state => { done() })
.catch(done)
})
gulp.task('assets', () =>
gulp.src(src.assets)
.pipe(gulp.dest(dist.assets))
)
const webpackBuild = env => {
return () => {
const webpackConfig = require(`./build/webpack.${env}.conf`)
return gulp.src(webpackConfig.entry)
.pipe(webpackStream(webpackConfig, webpack))
.pipe(gulp.dest(dist.root))
}
}
gulp.task('webpack-vue-server', webpackBuild('vue-server'))
gulp.task('webpack-vue-client', webpackBuild('vue-client'))
gulp.task('webpack', ['webpack-vue-server', 'webpack-vue-client'])
gulp.task('build', ['uiengine', 'assets'])
gulp.task('develop', ['build', 'watch'])
gulp.task('watch', () => {
gulp.watch(src.assets, ['assets'])
})