-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathgulpfile.js
More file actions
43 lines (37 loc) · 1.22 KB
/
gulpfile.js
File metadata and controls
43 lines (37 loc) · 1.22 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
const { dest, series, src, watch } = require('gulp');
const concat = require('gulp-concat');
const rename = require('gulp-rename');
const replace = require('gulp-replace');
const insert = require('gulp-insert');;
const iff = require('gulp-if');
const package = require('./package.json');
const deploy = process.argv.includes('--deploy');
const metafile = 'src/meta.js';
const underscript = [metafile, 'src/utils/**/*.js', 'src/base/**/*.js', 'src/hooks/**/*.js', '!src/**/*.ignore.js'];
function buildMeta() {
return src(metafile)
.pipe(replace('{{ version }}', package.version))
.pipe(rename('undercards.meta.js'))
.pipe(to());
}
function build() {
return src(underscript)
.pipe(replace('{{ version }}', package.version))
.pipe(replace(/((?: +|\t+|^)\/\/.[^@=].*$|(?: +|\t+|^)\/\*(?:.|\n\r?)+\*\/)/gm, ''))
.pipe(replace(/(\n\r?){2,}/gm, '$1'))
.pipe(iff(!deploy, insert.transform((content, file) => `// ${file.basename}\n${content}`)))
.pipe(concat('undercards.user.js'))
.pipe(to());
}
function to() {
return dest('dist');
}
if (deploy) {
underscript.push(
'!src/**/*.local.js',
'!src/**/*.test.js',
);
} else {
watch(underscript, build);
}
exports.default = series(buildMeta, build);