Я использую Bower-Installer для копирования нужных мне файлов из папки Bower_components в папку Bower_dist. Вот соответствующая часть файла bower.json:
"install": {
"path": "bower_dist"
},
"dependencies": {
"jquery": "~2.1.4",
"bootstrap": "~3.3.4",
"slick.js": "~1.5.5"
},
Теперь это создает папку bower_dist и внутри нее папку для каждого компонента. Проблема в том, что в компоненте slick.js у меня есть несколько файлов (eot, svg, ttf, woff), которые мне нужно иметь в папке /slick.js/fonts (а не только в папке /slick.js/).
Как мне это сделать? Я пытался указать специальный регистр для eot, svg, ttf и woff, но тогда это применяется ко всем компонентам. Кроме того, я не хочу вводить необходимость указывать все типы файлов (js, css и т. д.)... скорее хочу просто настроить специальный тип шрифта для slick.js. Возможно ли это сделать?
Ответ 1 · рейтинг 6 · Phil
Проблема заключается в том, что slick.js использует шаблон glob в своих bower.json main файловый массив, который не поддерживается...
Шарики типа js/*.js не допускаются.
Вы должны сделать следующее...
Переопределите необходимые файлы для slick.js в файле bower.json (см. Установка нескольких основных файлов и Настраиваемые пути а>)
"install": {
"base": "bower_dist",
"path": {
"js": "{name}",
"css": "{name}",
"eot": "{name}/fonts",
"svg": "{name}/fonts",
"ttf": "{name}/fonts",
"woff": "{name}/fonts"
},
"sources": {
"slick.js": [
"bower_components/slick.js/slick/slick.min.js",
"bower_components/slick.js/slick/slick.css",
"bower_components/slick.js/slick/slick-theme.css",
"bower_components/slick.js/slick/fonts/slick.eot",
"bower_components/slick.js/slick/fonts/slick.svg",
"bower_components/slick.js/slick/fonts/slick.ttf",
"bower_components/slick.js/slick/fonts/slick.woff"
]
}
}
Замените bower_components на любой каталог установки Bower.
Выполните этот запрос на включение.
Ответ 2 · рейтинг 2 · nikib3ro
Это оказалось сложнее, чем я думал:
"install": {
"path": "bower_dist",
"sources": {
"slick-carousel": {
"mapping": [
{ "bower_components/slick-carousel/slick/slick.min.js": "slick.min.js" },
{ "bower_components/slick-carousel/slick/slick.css": "slick.css" },
{ "bower_components/slick-carousel/slick/slick-theme.css": "slick-theme.css" },
{ "bower_components/slick-carousel/slick/ajax-loader.gif": "ajax-loader.gif" },
{ "bower_components/slick-carousel/slick/fonts/slick.eot": "fonts/slick.eot" },
{ "bower_components/slick-carousel/slick/fonts/slick.svg": "fonts/slick.svg" },
{ "bower_components/slick-carousel/slick/fonts/slick.ttf": "fonts/slick.ttf" },
{ "bower_components/slick-carousel/slick/fonts/slick.woff": "fonts/slick.woff" }
]
}
}
},
Я обновился до новой версии slick.js, и теперь она называется slick-carousel в беседке - просто чтобы объяснить разницу в имени пакета.