|
13 | 13 | htmlreplace = require('gulp-html-replace'), |
14 | 14 | ghtmlSrc = require('gulp-html-src'), |
15 | 15 | minifyHTML = require('gulp-htmlmin'), |
16 | | - gulpif = require('gulp-if'), |
17 | 16 | gjscs = require('gulp-jscs'), |
18 | 17 | jshint = require('gulp-jshint'), |
19 | 18 | gmanifest = require('gulp-manifest3'), |
20 | 19 | rename = require('gulp-rename'), |
21 | 20 | replace = require('gulp-replace'), |
22 | 21 | sass = require('gulp-sass')(require('sass')), |
23 | | - uglify = require('gulp-uglify'), |
24 | 22 | gutil = require('gulp-util'), |
25 | 23 | path = require('path'), |
26 | | - streamqueue = require('streamqueue'); |
| 24 | + streamqueue = require('streamqueue'), |
| 25 | + map = require("map-stream"), |
| 26 | + terser = require("terser"); |
27 | 27 |
|
28 | 28 | var vendorPrefix = "vendor/"; |
29 | 29 | function getFileName(attr, node) { |
@@ -81,7 +81,26 @@ function js() { |
81 | 81 | .pipe(gulp.dest('dist/')); |
82 | 82 |
|
83 | 83 | return streamqueue({ objectMode:true }, scripts, templates) |
84 | | - .pipe(gulpif(/[.]min[.]js$/, gutil.noop(), uglify())) |
| 84 | + .pipe(map((data, cb) => { |
| 85 | + const path = data.path; |
| 86 | + const contents = data.contents; |
| 87 | + if (/\.min\.js$/.test(path)) { |
| 88 | + cb(null, data); |
| 89 | + } |
| 90 | + else { |
| 91 | + (async () => { |
| 92 | + try { |
| 93 | + const code = await terser.minify(contents.toString('utf8')); |
| 94 | + const result = Buffer.from(code.code); |
| 95 | + data.contents = result; |
| 96 | + cb(null, data); |
| 97 | + } |
| 98 | + catch (e) { |
| 99 | + cb("error: " +e.toString()); |
| 100 | + } |
| 101 | + })(); |
| 102 | + } |
| 103 | + })) |
85 | 104 | .pipe(concat('app.min.js')) |
86 | 105 | .pipe(header(fs.readFileSync('license.js'))) |
87 | 106 | .pipe(eol('\n')) |
|
0 commit comments