为组件配置Grunt-Bower-Install路径

时间:2014-01-25 23:43:49

标签: gruntjs bower

如何指定用于bower组件的默认文件,以便grunt-bower-install正确注入?{/ p>

我正在使用datejs,根据您的本地化,他们有不同的文件。我想要包含的文件不在bower_components / datejs目录的根目录中,所以我收到错误:

  

datejs未在您的文件中注入。

     

请去看看   “app / bower_components / datejs”表示您需要的文件,然后手动完成   将它包含在您的文件中。

我正努力避免将datejs硬编码到我的索引文件中,并且不想将“date-en-US.js”文件移动到datejs目录的根目录中。

这是datejs凉亭组件的结构。

bower_components
└── datejs
    └── build
        └── ...
        └── date-en-US.js
        └── ...
    └── src
    └── test

如果这有帮助,这是位于datejs bower组件路径中的.bower.json文件:

{
  "name": "datejs",
  "homepage": "https://github.com/datejs/Datejs",
  "_release": "7bdddb55d6",
  "_resolution": {
    "type": "branch",
    "branch": "master",
    "commit": "7bdddb55d69719e42c358c3a2b7df706ff3090f8"
  },
  "_source": "git://github.com/datejs/Datejs.git",
  "_target": "*",
  "_originalSource": "datejs",
  "_direct": true
}

3 个答案:

答案 0 :(得分:7)

派对有点晚,但您可以覆盖回购的主要属性,以定义要注入应用程序的任何文件。为此,您需要使用您的 overrides中的bower.json属性。

试试这个:

{
  "name": "name",
  "version": "x.x.x",
  "dependencies": {
    "datejs": "x.x.x"
  },
  "overrides": {
    "datejs": {
      "main": "build/date-en-US.js"
    }
  }
}

答案 1 :(得分:3)

我也被这几次感到沮丧。我在我的案例中发现的是“grunt bower-install”需要在.bower.json中输入一个“main”条目。它是一个字符串或字符串数​​组,指向应安装的相关JS和/或CSS文件。

在你的情况下,我没有看到“主”,并建议你创建一个包含所需datejs文件的。如果你打算使用grunt进行缩小/等,我会建议源文件。您可以查看其他成功的组件以查看“主要”条目的示例。

我怀疑某些组件没有提供条目,因为它们没有单一的使用模式(即你可以混合和匹配你需要的文件),但这只是我的猜测。

答案 2 :(得分:1)

尝试在grunt文件中添加:

'bower-install': {
     fileTypes: {
         fileExtension: {
             detect: {
                 typeOfBowerFile: /-en-US.js/
             }
         }
    }
}

我没有尝试过,我的正则表达式可能已经关闭了。但是根据grunt-bower-install readme,它会指出See [wiredep's](https://github.com/stephenplusplus/wiredep) readme for more options of customization并使用上述配置显示。

基本上 - grunt-bower-install不知道要寻找什么。此选项似乎告诉它该信息。