Как подгрузить все нужные файлы из bower папки?

Доброго времени суток. Пользуюсь bower + gulp. Когда загружаю через bower плагины, библиотеки... у которых только один главный файл в котором все, что нужно для разработки (например jquery.js, normalize.css) то все норм, я вытягиваю из папки (bower_components) эти файлы в свою папку для библиотек и дальше делаю с ними, что захочу. Но вот например я загрузил bootstrap 4 и там в bower.json прописаны эти файлы:
"main": [
    "scss/bootstrap.scss",
    "dist/js/bootstrap.js"
  ],

Они выдергиваются в мою папку с библиотеками, но уже в файле bootstrap.scss прописаны куча импортов на подобие этого
@import "variables";
@import "mixins";
@import "custom";

Естественно эти файлы не импортуются, так как лежат в папке bower`a, а не в той куда я выдергиваю главный файл. Так вот вопрос: как мне выдергивать все нужные файлы для bootstrap`a, чтобы я его мог нормально скомпилировать, не прописывать же мне руками все пути в bootstrap.scss? Или еще бывает в некоторых плагинах нужно подтянуть папку со шрифтами (например в fontawesome), как такое сделать?

Вот структура проекта: prnt.sc/edbrta
  • Вопрос задан
  • 533 просмотра
Решения вопроса 1
@ffklffkl
Можете попробовать такой способ
В bower.json перегрузить main для бутстрапа
"overrides": {
    "bootstrap": {
      "main": [
        "./assets/stylesheets/**/*.scss"
      ]
    }

Затем вытянуть все файлы, изменив base (тогда структура папок сохранится). Возможно, поэлегантнее relative часть пути можно изменить, но пока так...
gulp.task('bootstrap', function () {
    return gulp.src(mainBowerFiles('**/*.{sass,scss}'), {base: __dirname + '/bower_components/bootstrap/'})
        .pipe(gulp.dest('./app/css/libs'))
});

Но мне кажется, лучшим решением было бы изменить путь для загрузки bower зависимостей сразу в папку app и спокойно собирать проект, не переопределяя main файлы, копируя кучу файлов для каждой новой зависимости
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@quramolt
Если я правильно понял вопрос и вы хотите грузить файлы по отдельности, то у плагина gulp-sass (и у node-sass, есс-но, тоже) есть опция includePaths
В этой опции можно перечислить массив путей до папок, а в main.scss соот-но можно подключать файлы, начиная от этих путей
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы