This repository has been archived by the owner on Jul 27, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
/
gulpfile.js
91 lines (81 loc) · 2.65 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
/**
* @license
* Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
* This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
* The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
'use strict';
/* eslint-env node */
/* eslint-disable no-console */
const gulp = require('gulp');
const sourcemaps = require('gulp-sourcemaps');
const del = require('del');
const rename = require('gulp-rename');
const rollup = require('rollup-stream');
const buffer = require('vinyl-buffer');
const source = require('vinyl-source-stream');
const closure = require('google-closure-compiler').gulp();
const size = require('gulp-size');
const runseq = require('run-sequence');
const modules = [
'css-parse',
'custom-style-element',
'make-element',
'svg-in-shadow'
];
const moduleTasks = modules.map((m) => {
gulp.task(`test-module-${m}`, () => {
return rollup({
entry: `tests/module/${m}.js`,
format: 'iife',
moduleName: m
})
.pipe(source(`${m}.js`, 'tests/module'))
.pipe(gulp.dest('./tests/module/generated'))
});
return `test-module-${m}`;
});
gulp.task('clean-test-modules', () => del(['tests/module/generated']));
gulp.task('test-modules', (cb) => {
runseq('clean-test-modules', moduleTasks, cb);
});
gulp.task('default', ['closure']);
gulp.task('closure', () => {
return gulp.src('src/*.js')
.pipe(sourcemaps.init())
.pipe(closure({
new_type_inf: true,
compilation_level: 'ADVANCED',
language_in: 'ES6_STRICT',
language_out: 'ES5_STRICT',
output_wrapper: '(function(){\n%output%\n}).call(self)',
js_output_file: 'apply-shim.min.js',
entry_point: '/src/apply-shim.js',
dependency_mode: 'STRICT',
warning_level: 'VERBOSE',
rewrite_polyfills: false,
// externs: ['externs/shadycss-externs.js']
// formatting: 'PRETTY_PRINT'
}))
.pipe(size({showFiles: true, showTotal: false, gzip: true}))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('.'))
});
gulp.task('debug', () => {
return rollup({
entry: 'src/apply-shim.js',
format: 'iife',
moduleName: 'applyshim',
sourceMap: true
})
.pipe(source('apply-shim.js', 'src'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(rename('apply-shim.min.js'))
.pipe(size({showFiles: true, showTotal: false, gzip: true}))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./'))
});