grunt build或bower为highstocks增加了无用的依赖

时间:2014-03-14 16:11:19

标签: gruntjs yeoman bower

我正在使用自耕农,咕噜咕噜,凉亭和高档库。 当我构建我的应用程序(咕噜声构建)时,生成这3行

<script src="bower_components/highstock/js/highcharts.src.js"></script>
<script src="bower_components/highstock/js/highstock.src.js"></script>
<script src="bower_components/highstock/js/highcharts-more.src.js"></script>

但是,由于highstock包含高图表,因此该行不应存在,这会产生错误

<script src="bower_components/highstock/js/highcharts.src.js"></script>

错误为http://www.highcharts.com/errors/16

如何在构建中删除此行?

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

我相信这是grunt-bower-install在工作。 gbi是一项任务,可以查看项目bower.json中的依赖项,并将适当的引用注入HTML。为了使其工作,每个Bower包需要在 main文件中指定bower.json属性。

所以,bower.json file for highcharts看起来像这样:

{
  "name": "highcharts",
  "version": "v3.0.10-modified",
  "main": [
    "js/highcharts.src.js",
    "js/highcharts-more.src.js",
    "js/modules/exporting.src.js"
  ],  
  "ignore": [
    "errors",
    "exporting-server",
    "gfx",
    "lib",
    "samples",
    "studies",
    "test",
    "tools",
    "utils",
    "ant",
    "build.md",
    "build.properties",
    "build.xml"
  ]
}

因为它列出了3个不同的文件,gbi正在解释为&#34;你需要这三个文件来使这个Bower包工作。&#34;我对highcharts并不熟悉,但如果你知道这是假的 - 换句话说,你只需要其中一个文件就可以了 - 那么你和其他人发送一个文件对你有帮助拉请求更正其bower.json文件。

就目前的问题而言,您可以在项目overrides中指定bower.json属性,该属性仅列出您需要的文件,例如:

{
  "name": "your-project",
  "dependencies": {
    "highcharts": "~3.0.0"
  },
  "overrides": {
    "highcharts": {
      "main": "js/highcharts.src.js"
    }
  }
}

下次运行grunt bowerInstall时,它会自行排序。

注意:请确保您使用最新的grunt-bower-install来使用新的overrides功能。