-
Notifications
You must be signed in to change notification settings - Fork 36
/
Copy pathgulpfile.js
98 lines (84 loc) · 3.2 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
88
89
90
91
92
93
94
95
96
97
98
var gulp = require('gulp'),
uglify = require('gulp-uglify'),
rename = require('gulp-rename'),
neuter = require('gulp-neuter'),
concat = require('gulp-concat'),
emberTemplates = require('gulp-ember-templates'),
zip = require('gulp-zip'),
mergeStream = require('merge-stream'),
runSequence = require('run-sequence');
gulp.task('build', function() {
/* ----------------------------------------
Salesforce Lightning Design System
---------------------------------------- */
var slds = gulp.src('node_modules/@salesforce-ux/design-system/assets/**/*')
.pipe(gulp.dest('./public/assets'));
/* ----------------------------------------
Moment.js
---------------------------------------- */
var moment = gulp.src('node_modules/moment/moment.js')
.pipe(gulp.dest('./public/lib/moment'));
return mergeStream(slds, moment);
});
gulp.task('emberTemplates', function() {
gulp.src('./aljs-ember-app/templates/**/*.hbs')
.pipe(emberTemplates({type: 'browser'}))
.pipe(concat('templates.js'))
.pipe(gulp.dest('./aljs-ember-app/'));
});
gulp.task('neuter', function() {
gulp.src('aljs-ember-app/aljs-compiler.js')
.pipe(neuter('aljs.pck.js', null, {
basePath: 'aljs-ember-app/'
}))
.pipe(gulp.dest('./public/js'));
});
gulp.task('concat', function() {
var buildOrder = [
'./public/src/jquery.aljs-init.js',
'./public/src/jquery.aljs-datepicker.js',
'./public/src/jquery.aljs-icon-group.js',
'./public/src/jquery.aljs-lookup.js',
'./public/src/jquery.aljs-modal.js',
'./public/src/jquery.aljs-multi-select.js',
'./public/src/jquery.aljs-notification.js',
'./public/src/jquery.aljs-picklist.js',
'./public/src/jquery.aljs-pill.js',
'./public/src/jquery.aljs-popover.js',
'./public/src/jquery.aljs-tabs.js'
];
return gulp.src(buildOrder)
.pipe(concat('jquery.aljs-all.js'))
.pipe(gulp.dest('./public/src'));
});
gulp.task('concatWithMoment', function() {
var buildOrder = [
'./public/lib/moment/moment.js',
'./public/src/jquery.aljs-all.js'
];
return gulp.src(buildOrder)
.pipe(concat('jquery.aljs-all-with-moment.js'))
.pipe(gulp.dest('./public/src'));
});
gulp.task('uglify', function() {
return gulp.src(['./public/src/**/*.js', '!./public/src/**/*.min.js'])
.pipe(rename({ suffix: '.min' }))
.pipe(uglify())
.pipe(gulp.dest('./dist'));
});
gulp.task('zip', function() {
return gulp.src(['./dist/**/*', '!./dist/**/*.zip'])
.pipe(zip('aljs.zip'))
.pipe(gulp.dest('./dist'));
});
gulp.task('dist', function() {
return runSequence('concat', 'concatWithMoment', 'uglify', 'zip');
});
gulp.task('watch', function() {
gulp.watch('./aljs-ember-app/templates/**/*.hbs', ['emberTemplates']);
gulp.watch('./aljs-ember-app/**/*.js', ['neuter']);
gulp.watch(['./public/src/**/*.js', '!./public/src/**/*.min.js', '!./public/src/jquery.aljs-all.js', '!./public/src/jquery.aljs-all-with-moment.js'], ['dist']);
});
gulp.task('default', ['build'], function() {
return runSequence('emberTemplates', 'neuter', 'dist', 'watch');
});