Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как изменить путь установки Bower для одного компонента

Автор вопроса: nikib3roОтветов: 2

Я использую 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. Возможно ли это сделать?

javascriptbowerbower-install

Ответы

Ответ 1 · рейтинг 6 · Phil

Проблема заключается в том, что slick.js использует шаблон glob в своих bower.json main файловый массив, который не поддерживается...

Шарики типа js/*.js не допускаются.

Вы должны сделать следующее...

  1. Переопределите необходимые файлы для 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 · рейтинг 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 в беседке - просто чтобы объяснить разницу в имени пакета.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы