07d13c9c
isisadmin
polymer catalog
|
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
|
/**
* @license
* Copyright (c) 2015 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
*/
//jshint node: true
'use strict';
var crisper = require('gulp-crisper');
var lazypipe = require('lazypipe');
var polyclean = require('polyclean');
var rename = require('gulp-rename');
var vulcanize = require('gulp-vulcanize');
var gutil = require('gulp-util');
var htmlPipe = lazypipe()
// inline html imports, scripts and css
// also remove html comments
.pipe(vulcanize, {
inlineScripts: true,
inlineCss: true,
stripComments: true,
stripExcludes: ['bower_components/hydrolysis/hydrolysis-analyzer.html']
})
// remove whitespace from inline css
.pipe(polyclean.cleanCss)
;
// remove javascript whitespace
var leftAlign = polyclean.leftAlignJs;
// minimize javascript with uglifyjs
var uglify = polyclean.uglifyJs;
module.exports = function(opts) {
opts = opts || {};
var crush = opts.maximumCrush;
var pipe = htmlPipe
// switch between cleaning or minimizing javascript
.pipe(crush ? uglify : leftAlign)
// rename files with an infix '.build'
.pipe(rename, function(path) {
path.basename += '.build';
})
// split the javascript out into `.build.js` for CSP compliance
.pipe(crisper)
();
// have to handle errors ourselves, thanks gulp >:(
pipe.on('error', function(error) {
gutil.log(error.toString());
process.exit(1);
});
return pipe;
};
|