如何更改一个组件的bower-installer路径

nik*_*3ro 9 javascript node.js bower bower-install

我正在使用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"
},
Run Code Online (Sandbox Code Playgroud)

现在这是创建bower_dist文件夹,并在每个组件的文件夹中.问题是在slick.js组件中我有几个文件(eot,svg,ttf,woff)我需要在/slick.js/fonts文件夹中(而不仅仅是/slick.js/文件夹).

我该怎么做呢?我已经尝试为eot,svg,ttf和woff指定特殊情况,但随后它将应用于所有组件.另外我不想引入需要指定所有文件类型(js,css等)...而只想为slick.js配置特殊字体类型.这可能吗?

Phi*_*hil 6

这里的问题似乎是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"
            ]
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    替换bower_components你的凉亭安装目录.

  2. 按照此拉取请求.


nik*_*3ro 2

事实证明这比我想象的要难:

"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" }
            ]
        }
    }
},
Run Code Online (Sandbox Code Playgroud)

我已经升级到新版本的 slick.js,现在它在 Bower 中被称为 slick-carousel - 只是为了解释包名称的差异。