Я тщательно изучаю курс johnpapa по автоматизации с помощью Gulp и, кажется, натыкаюсь на странную стену: когда я пытаюсь запустить задачу конкатенации и минимизации CSS и JS, минификация не выполняется.
Это задача:
gulp.task('optimize', ['inject'], function () {
var assets = $.useref.assets({searchPath: ''});
var cssFilter = $.filter(['**/*.css'], {restore: true});
var jsFilter = $.filter(['**/*.js'], {restore: true});
return gulp
.src(config.indexFile)
.pipe($.rename('test.jsp'))
.pipe($.plumber())
.pipe(assets)
.pipe(cssFilter)
.pipe($.csso())
.pipe(cssFilter.restore)
.pipe(jsFilter)
.pipe($.uglify())
.pipe(jsFilter.restore)
.pipe(assets.restore())
.pipe($.useref())
.pipe(gulp.dest(config.indexLocation))
;
});
inject
— это задача, которая внедряет ссылки css и js в индексный файл (работает правильно), $
— это require('gulp-load-plugins')({lazy: true})
, а config.indexFile
— это index.jsp
.
Моя файловая структура (в отличие от той, что в курсе):
- ModuleDir
- dist
- css
- lib.css
- app.css
- fonts
- images
- js
- lib.js
- app.js
- css
- js
- web-app
- InnerDir
- index.jsp
- test.jsp
- package.json, bower.json, etc. (all the required files)
По сути, index.jsp обрабатывается для библиотеки CSS и JS и ресурсов приложения, которые минимизируются и объединяются в lib.css, lib.js, app.css и app.js. Позже все это внедряется в копию index.jsp, которая называется test.jsp.
Сбор активов, конкатенация и инъекция работают великолепно. Минификация - не очень...
Любые идеи или указатели будут оценены.