Gulp and Bower - создание правильной структуры файлов
Я добавляю Bower в проект, который уже использует Gulp. Моя структура папок выглядит так:
|- bower_components
| |- dependency1
| | |- dist
| | |- lib1.js
| | |- lib1.min.js
| |
| |- dependency2
| |- core
| |- sub
| | |- extra.js
| |
| |- lib2.js
|
|- target
|- js
Мне уже удалось скопировать все сторонние библиотеки в target/js, используя main-bower-files и bower-normalize. Но это сплющено (и я не установил опцию нормализации flatten
правда!), так это выглядит так:
target
|- js
|- lib1.js
|- extra.js
|- lib2.js
файлы lib1.js
, extra.js
а также lib2.js
помечены как main
в конфигурационном файле bower.json.
Чего я хотел бы добиться, так это иметь такую структуру файлов:
target
|- js
|- dependency1
| |- lib1.js
|
|- dependency2
|- sub
| |- extra.js
|
|- lib2.js
Я буду очень признателен за помощь!
1 ответ
Пройдите через gulp-flatten, это поможет вам удалить или заменить относительный путь к файлам. А также, я очень рекомендую Wiredep. Он автоматически обрабатывает все ваши зависимости, а также порядок зависимостей. Надеюсь, что это поможет вам.
Ваш исходный каталог с компонентами Bower:
|- bower_components
| |- dependency1
| | |- dist
| | |- lib1.js
| | |- lib1.min.js
| |
| |- dependency2
| |- core
| |- sub
| | |- extra.js
| |
| |- lib2.js
|
|- target
|- js
Использование gulp-flatten -
gulp.src(['bower_components/**/*.js'])
.pipe(flatten({ includeParents: [1, 1]} ))
.pipe(gulp.dest('build/'));
создаст эту структуру (сверху дерева каталогов):
|- bower_components
| |- dependency1
| | |- lib1.js
| |
| |- dependency2
| |- sub
| | |- extra.js
| |
| |- lib2.js
includeParents: [1, 1]
Если передать в виде массива из двух чисел, оба родителя сверху и снизу будут сохранены в результирующий путь файла.
includeParents: 1
Если передано как положительное число, оно будет включать в себя число родителей верхнего уровня в выходных данных.
includeParents: -1
Если передано как отрицательное число, оно будет включать количество нижестоящих родителей в выводе.