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

时间:2015-07-10 22:39:11

标签: 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"
},

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

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

2 个答案:

答案 0 :(得分:6)

此处的问题似乎是 slick.js bower.json main文件数组中使用了一个glob模式,即not supported...

  

js/*.js等全球

您应该执行以下操作...

  1. bower.json文件中覆盖 slick.js 所需的文件(请参阅Install multiple main filesConfigurable paths

    "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替换为您的凉亭安装目录。

  2. 关注this pull request

答案 1 :(得分: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" }
            ]
        }
    }
},

我已升级到新版本的slick.js,现在它被称为凉亭中的光滑轮播 - 只是为了解释包名称的差异。