Сборка проекта gulp, как подружить wiredep и useref, если .html файлы в разных папках?

При билде проекта возникли трудности, имеется такая структура файлов:
8872a23aeaae4015b18e480113354d00.PNG

Использую препроц Jade, при компиляции html файлов wiredep автоматом прописывает пути к библиотекам bower, все работает до того момента пока не попытаться выполнить сборку проекта. Из -за того что файлы .jade лежат в разных папках, во время компиляции в html создаются файлы сохраняя структуру папок. Пути к компонентам bower прописываются в файлах, но так как некоторые файлы лежат в отдельных папках, то для них задаются относительные пути. И при попытке выполнить сборку useref ругается на пути к файлам тех файлов, которые лежат в папках и имеют относительные пути.

Сборка

gulp.task('build',['clean'], function () {
    return gulp.src('src/*.html')
        .pipe(useref({searchPath: './src/'}))
        .pipe(gulpif('*.js', uglify()))
        .pipe(gulpif('*.css', minifyCss()))
        .pipe(gulp.dest('dist'));
});
/*-------------clean--------*/
gulp.task('clean', function () {
    return gulp.src('dist', {read: false})
        .pipe(clean());
});


Работа с jade
gulp.task('pug', function buildHTML() {
  return gulp.src(['./src/jade/**/*.pug','!./src/jade/**/_*.pug'])
  .pipe(pug({
    pretty: true
  }).on('error', pugErrorHandler))
 .pipe(wiredep({
    directory : "src/bower/",
    ignorePath: '../',
    }))
  .pipe(gulp.dest('src'))
});


Собственно в чем вопрос, можно ли указать в ignorePath: '../' для wiredep несколько значений ?

для файлов в корне путь прописывается таким образом

<link rel="stylesheet" href="bower/select2/dist/css/select2.min.css" />


а для файлов которые находятся в папках таким

<link rel="stylesheet" href="../bower/select2/dist/css/select2.min.css" />


Как сделать так, чтобы во время сборки useref находил правильные пути в всех html файлах ?
  • Вопрос задан
  • 731 просмотр
Пригласить эксперта
Ответы на вопрос 1
ionenkovladimir
@ionenkovladimir Автор вопроса
Спасибо за совет. Нашел решение может Вам или кому-то пригодится:
wiredep можно указать несколько параметров
.pipe(wiredep({
    directory : "src/bower/",  // Путь к вашим бовер компонентам 
    ignorePath: '../',  // Игнорирует указанный путь 
    }))


А для useref указал следующее:
.pipe(useref({
          searchPath: './src/', //Ищет данную папку
          transformPath: function(filePath) {
                return filePath.replace('../','/') // Меняет путь на который указан вторым параметром
            }
        }))


Таким образом я организовал работу данных плагинов со структурой папок удобной для меня. Пути прописываются валидно, по крайней мере для меня =)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы