Некоторые Фоноваяглотком uglification бросали ошибки для Angular2
Я использую глотка, как моя задача бегуна для этого angular2 приложения я работаю. Это приложение также использует библиотеки дизайна угловых материалов. Я также использую Hammer.js для поддержки мобильных жестов. Все это делается в обновлении VS2015 3.
проблемной области
Это частичный фрагмент моего глотка скрипта, который вызывает проблему
var ts = require('gulp-typescript');
var gulp = require('gulp');
var clean = require('gulp-clean');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
gulp.task("scripts",() => {
gulp.src([
'core-js/client/**',
'systemjs/dist/system.src.js',
'reflect-metadata/**',
'rxjs/**',
'zone.js/dist/**',
'@angular/**',
'jquery/dist/jquery.*js',
'bootstrap/dist/js/bootstrap.*js',
'@angular2-material/**/*',
'lodash/*.js'
], {
cwd: "node_modules/**"
})
.pipe(concat('scripts.js'))
.pipe(gulp.dest('lib-min'))
.pipe(rename('scripts.min.js'))
.pipe(uglify())
.pipe(gulp.dest('lib-min'))
.on('finish', function() {
console.log('Done!');
process.exit(0);
});
});
Я получаю сообщение об ошибке, когда я включать труба до uglify()
Конкатенация работает просто отлично. Ошибки я получаю:
events.js:141 throw er; // Unhandled 'error' event ^ GulpUglifyError: unable to minify JavaScript at createError (C:\my-web\node_modules\gulp-uglify\lib\create-error.js:6:14) at wrapper (C:\my-web\node_modules\lodash\_createHybrid.js:87:15) at trycatch (C:\my-web\node_modules\gulp-uglify\minifier.js:26:12) at DestroyableTransform.minify [as _transform] (C:\my-web\node_modules\gulp-uglify\minifier.js:76:19) at DestroyableTransform.Transform._read (C:\my-web\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:159:10) at DestroyableTransform.Transform._write (C:\my-web\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:147:83) at doWrite (C:\my-web\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:313:64) at writeOrBuffer (C:\my-web\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:302:5) at DestroyableTransform.Writable.write (C:\my-web\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:241:11) at Transform.ondata (_stream_readable.js:542:20) Process terminated with code 1.
Когда я изменяю задачу глотка этого ниже все работает отлично и приложение работает как задумано в браузере.
gulp.task("scripts",() => {
gulp.src([
'core-js/client/**',
'systemjs/dist/system.src.js',
'reflect-metadata/**',
'rxjs/**',
'zone.js/dist/**',
'@angular/**',
'jquery/dist/jquery.*js',
'bootstrap/dist/js/bootstrap.*js',
'@angular2-material/**/*',
'lodash/*.js'
], {
cwd: "node_modules/**"
})
.pipe(gulp.dest('lib-min'))
.on('finish', function() {
console.log('Done!');
process.exit(0);
});
});
Похоже глотком минификация (уродовать) работает с проблемами, когда встретив angular2 библиотек. У кого-нибудь есть рабочий пример использования глотки для минимизации библиотек Angular2? библиотеки, например. будет @angular
, @angular2-material
, systemjs
', hammer.js
, rxjs
Как угадать с глотком? Я хочу уменьшить цифры на изображении ниже.
Globs like 'rxjs/**' будет включать в себя ** все **, а не только файлы JavaScript. Конечно, 'uglify()' будет выкидывать, если вы кормите его дерьмом. –
не все это необходимо для углового 2? Если нет, то какой способ игнорировать вещи, которые не нужны и обрабатывают остальные? – user20358