2015-07-10 37 views
9

我正在使用bower-installer将我需要的文件从bower_components文件夹复制到bower_dist文件夹中。这里是bower.json文件的相关部分:如何更改一个组件的bower-installer路径

"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

这被证明是更严厉的比我想象:

"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的新版本,现在它被称为华而不实的传送带在亭子 - 只是解释包的区别名称。

6

这里的问题似乎是slick.js使用在其bower.jsonmain文件阵列的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

+0

只要我添加“来源”:{“slick.js”:...命令bower-installer停止发布slick.js。你确定这是适当的格式?我也试着用slick.js来修改bower.js,就像你在pull请求中做的那样,但仍然不起作用 - 它不会创建合适的文件夹结构。 – kape123

+0

@ kape123我只是遵循bower-installer文档〜https://github.com/blittle/bower-installer#install-multiple-main-files。看起来您需要在您的bower安装目录中为文件路径加上前缀。我将以 – Phil

+0

为例更新我的答案,当我这样说时,它会复制文件。但它又将它们全部放在同一个目录中 - /bower_dist/slick.js/ ...它不会为字体创建字体目录。 ;( – kape123