Gruntjs 为组件配置Grunt Bower安装路径

Gruntjs 为组件配置Grunt Bower安装路径,gruntjs,bower,Gruntjs,Bower,如何指定用于bower组件的默认文件,以便正确地插入它 我正在与他们合作,他们有不同的文件,这取决于您的本地化。我想要包含的文件不在bower_components/datejs目录的根目录中,因此出现错误: datejs未注入到您的文件中 请进去看看 “app/bower\u components/datejs”用于您需要的文件,然后手动 将其包含在您的文件中 我正在尽最大努力避免将datejs硬编码到索引文件中,也不想将“date en US.js”文件移动到datejs目录的根目录中 这是

如何指定用于bower组件的默认文件,以便正确地插入它

我正在与他们合作,他们有不同的文件,这取决于您的本地化。我想要包含的文件不在bower_components/datejs目录的根目录中,因此出现错误:

datejs未注入到您的文件中

请进去看看 “app/bower\u components/datejs”用于您需要的文件,然后手动 将其包含在您的文件中

我正在尽最大努力避免将datejs硬编码到索引文件中,也不想将“date en US.js”文件移动到datejs目录的根目录中

这是datejs bower组件的结构

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
}

尝试在grunt文件中添加以下内容:

'bower-install': {
     fileTypes: {
         fileExtension: {
             detect: {
                 typeOfBowerFile: /-en-US.js/
             }
         }
    }
}
我没有试过这个,我的正则表达式可能已经关闭了。但是根据,它声明
参见[wiredep's](https://github.com/stephenplusplus/wiredep)更多自定义选项的自述文件
,其中显示了使用上述配置


基本上-
grunt bower安装不知道要找什么。这个选项似乎告诉它这条信息。

我也被这条消息挫败过几次。在我的案例中,我发现“grunt bower安装”需要在.bower.json中有一个“main”条目。它是一个字符串或字符串数组,指向应该安装的相关JS和/或CSS文件

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


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

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

试试这个:

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

谢谢我有一种感觉就是这样。但是,如果将来要更新bower组件,会发生什么情况?难道.bower.json文件中的更改不会被覆盖吗?我很遗憾地承认,我可能比你想象的更像一个傻瓜。如果更有资格的专家看到这一点和评论,我将更新我的回复。我还没有测试更新用例。为了保护自己,我将.bower.json文件强制放入我的源代码管理中,这至少会使任何更新都可见。在一个案例中,我向开发人员提出了一个github问题,因为我认为他们可以自己改变它。然而,“main”可能是许多文件或文件组合中的一个的用例似乎没有被Bower所服务。“然而,我没有足够的能力提出这一投诉。”corporatedrone公司作为一个单独的答案回答了这个问题!还有更多关于它的解释,来自。Thx@nknj