forked from alphagov/govuk-frontend
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
99 lines (88 loc) · 2.86 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
99
'use strict'
const paths = require('./config/paths.json')
const gulp = require('gulp')
const taskListing = require('gulp-task-listing')
const runsequence = require('run-sequence')
const taskArguments = require('./tasks/gulp/task-arguments')
// Gulp sub-tasks
require('./tasks/gulp/lint.js')
require('./tasks/gulp/test.js')
require('./tasks/gulp/compile-assets.js')
require('./tasks/gulp/generate-readme.js')
require('./tasks/gulp/watch.js')
require('./tasks/gulp/dist-prepare.js')
require('./tasks/gulp/dist-docs.js')
require('./tasks/gulp/packages-update.js')
require('./tasks/gulp/prepare-files.js')
require('./tasks/gulp/demo-build.js')
require('./tasks/gulp/preview-component-list.js')
require('./tasks/gulp/preview-docs.js')
require('./tasks/gulp/nunjucks-render.js')
// Build packages task -----------------
// Prepare package folder for publishing
// -------------------------------------
gulp.task('build:packages', cb => {
runsequence('test', 'prepare:files', 'packages:update', cb)
})
// Build dist task ----------------------
// Create temp files, update packages
// --------------------------------------
gulp.task('build:dist', cb => {
runsequence('dist:prepare', 'dist:docs', cb)
})
// Dev task -----------------------------
// Compiles assets and sets up watches
// --------------------------------------
gulp.task('dev', cb => {
runsequence('styles',
'scripts',
'copy:icons',
'preview:docs',
'preview:component:list',
'nunjucks',
'watch', cb)
})
// Umbrella scripts tasks for preview ---
// Runs js lint and compilation
// --------------------------------------
gulp.task('scripts', cb => {
runsequence('js:lint', 'js:compile', cb)
})
// Umbrella styles tasks for preview ----
// Runs js lint and compilation
// --------------------------------------
gulp.task('styles', cb => {
runsequence('scss:lint', 'scss:compile', cb)
})
// Copy icons task ----------------------
// Copies icons to /public
// --------------------------------------
gulp.task('copy:icons', () => {
return gulp.src(paths.src + 'globals/icons/**/*.{png,svg,gif,jpg}')
.pipe(gulp.dest(taskArguments.destination + '/icons/'))
})
// All test combined --------------------
// Runs js, scss and accessibility tests
// --------------------------------------
gulp.task('test', cb => {
runsequence(
'js:lint',
'scss:lint',
'html:axe',
'html:tenon',
cb)
})
// Copy assets task for local & heroku --
// Copies files to
// taskArguments.destination (public)
// --------------------------------------
gulp.task('copy-assets', () => {
runsequence('styles',
'scripts',
'copy:icons'
)
})
// Default task -------------------------
// Lists out available tasks.
// --------------------------------------
gulp.task('default', taskListing)