forked from darrinhenein/framer-sketch-boilerplate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.babel.js
70 lines (62 loc) · 1.47 KB
/
gulpfile.babel.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
import gulp from 'gulp'
import gutil from 'gulp-util'
import watch from 'gulp-watch'
import coffee from 'gulp-coffee'
import webpack from 'gulp-webpack'
import sketch from 'gulp-sketch'
import browserSync from 'browser-sync'
gulp.task('build', ['copy', 'coffee', 'js', 'sketch'])
gulp.task('default', ['build', 'watch'])
gulp.task('watch', () => {
gulp.watch('./src/*.coffee', ['coffee'])
gulp.watch('./src/*.js', ['js'])
gulp.watch('./src/*.sketch', ['sketch'])
browserSync({
server: {
baseDir: 'build'
},
browser: 'google chrome',
injectChanges: false,
files: ['build/**/*.*'],
notify: false
})
})
gulp.task('coffee', () => {
gulp.src('src/*.coffee')
.pipe(coffee({bare: true}).on('error', gutil.log))
.pipe(gulp.dest('build/'))
})
gulp.task('js', () => {
const webpackConfig = {
output: {
filename: 'app.js'
},
module: {
loaders: [
{ test: /\.js/, loader: 'babel-loader' },
{ test: /\.json/, loader: 'json-loader' }
]
},
resolve: {
extensions: ['', '.js', '.jsx']
}
}
return gulp.src('src/app.js')
.pipe(webpack(webpackConfig))
.pipe(gulp.dest('build/'))
})
gulp.task('sketch', () => {
gulp.src('src/*.sketch')
.pipe(sketch({
export: 'slices',
format: 'png',
saveForWeb: true,
scales: 1.0,
trimmed: false
}))
.pipe(gulp.dest('build/images'))
})
gulp.task('copy', () => {
gulp.src('src/*')
.pipe(gulp.dest('build'))
})