-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
79 lines (66 loc) · 1.94 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
var gulp = require('gulp')
, plugins = require('gulp-load-plugins')()
, env = process.env.NODE_ENV || 'development'
, uglify = require('gulp-uglify')
, minifyCSS = require('gulp-minify-css')
var dir = {}
dir._ = './public/'
dir.dev = {}
dir.dev._ = dir._ + 'source/'
dir.dev.scss = dir.dev._ + '*.scss'
dir.dev.js = dir._ + 'blocks/**/*.js'
dir.build = {}
dir.build._ = dir._ + 'build/'
// Frontend builder
gulp.task('config', function () {
var srcConfig = ''
if (env === 'production') {
srcConfig = './config/prod.json'
}
else {
srcConfig = './config/dev.json'
}
gulp
.src(srcConfig)
.pipe( plugins.concat('current.json') )
.pipe( gulp.dest('./config') )
})
gulp.task('scripts', function () {
gulp
.src(
[ 'libs/jquery/dist/jquery.js'
, 'libs/lodash/dist/lodash.js'
, 'libs/codemirror/lib/codemirror.js'
, 'node_modules/share/webclient/share.uncompressed.js'
, 'libs/share-codemirror/share-codemirror.js'
, 'libs/codemirror/keymap/sublime.js'
, 'public/blocks/page/page.js'
, 'public/blocks/editor/editor.js'
, 'public/blocks/page/socket.js'
, 'public/blocks/sidebar/user.js'
])
.pipe( plugins.concat('application.js') )
.pipe( gulp.dest(dir.build._) )
})
gulp.task('stylesheets', function() {
gulp
.src(dir.dev.scss)
.pipe( plugins.sass() )
.pipe( plugins.autoprefixer('last 3 version', '> 5%', { cascade: true }) )
.pipe( gulp.dest(dir.build._) )
.on('end', function() {
gulp
.src(
[ 'libs/codemirror/lib/codemirror.css'
, 'public/build/index.css'
])
.pipe( plugins.concat('application.css') )
.pipe( gulp.dest(dir.build._) )
})
})
gulp.task('watch', function() {
gulp.watch(dir.dev.scss, ['stylesheets'])
gulp.watch(dir.dev.js, ['scripts'])
})
gulp.task('build', ['config', 'scripts', 'stylesheets'])
gulp.task('default', ['build', 'watch'])