jHipster 中的 bower 依赖项是如何组织的?

How are the bower dependencies in jHipster organized?

我想将 highstock(highstock.js in highcharts)集成到我的 jHipster 项目中。因此,我将以下内容添加到我的 bower.json:

"dependencies": {
  "highcharts" : "4.2.6",
  "highcharts-ng": "0.0.12"
},
"overrides": {
  "highcharts-ng": {
    "dependencies": {
        "angular": "1.5.8",
        "highcharts": "4.2.6"
    }
  }
}

当我使用此配置构建我的项目时 gulp 在 index.html 文件中导入 javascript 依赖项,如下所示:

<script src="bower_components/highcharts/highcharts.js"></script>
<script src="bower_components/highcharts/highcharts-more.js"></script>
<script src="bower_components/highcharts/modules/exporting.js"></script>
<script src="bower_components/highcharts-ng/dist/highcharts-ng.js"></script>

但我真正需要的只是highstock.js: Highcharts project overview

我如何控制这里导入的内容?

解决方案在于使用的 gulp 插件 "main-bower-files",它由 jHipster 使用并记录在案 here

gulp 构建脚本根据 highcharts/bower.json 文件决定导入什么。在 highcharts 的情况下,指定以下内容:

{
  "name": "highcharts",
  "version": "v4.2.6",
  "main": [
    "highcharts.js",
    "highcharts-more.js",
    "modules/exporting.js"
  ]
}

如果你想覆盖它,你可以在你的项目 bower.json 的 "overrieds" 部分中这样做,并指定它应该导入哪个 javascript:

"dependencies": {
  "highcharts" : "4.2.6",
  "highcharts-ng": "0.0.12"
},
"overrides": {
  "highcharts": {
    "main": "highstock.js"
  },
  "highcharts-ng": {
    "dependencies": {
      "angular": "1.5.8",
      "highcharts": "4.2.6"
    }
  }
}