【问题标题】:Configure Grunt-Bower-Install path for a Component为组件配置 Grunt-Bower-Install 路径
【发布时间】:2014-01-25 23:43:49
【问题描述】:

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

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

datejs 没有注入到你的文件中。

请进去看看 “app/bower_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
}

【问题讨论】:

    标签: gruntjs bower


    【解决方案1】:

    晚了一点,但您可以覆盖 repo 的 main 属性来定义您想要注入到应用程序中的任何文件。为此,您需要使用 YOUR bower.json 中的 overrides 属性。

    试试这个:

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

    【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 谢谢!我有一种感觉,就是这样。但是,如果我以后要更新 Bower 组件会怎样? .bower.json 文件中的更改不会被覆盖吗?
    • 可耻地我承认我可能比你想象的更菜鸟。如果更有资格的专家看到这一点并 cmets,我将更新我的回复。我还没有测试更新用例。为了保护自己,我强制将 .bower.json 文件放入我的源代码控制中,这至少可以显示任何更新。在一种情况下,我向开发人员打开了一个 github 问题,因为我认为他们可以自己更改它。但是,Bower 似乎没有提供“main”可能是许多文件或文件组合之一的用例。但是,我没有足够的能力提出这个投诉。
    • @corporatedrone,作为单独的答案回答了这个问题
    【解决方案3】:

    尝试在你的 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 不知道要寻找什么。此选项似乎告诉它该信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-05
      • 2014-09-14
      • 2018-08-03
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      相关资源
      最近更新 更多