【问题标题】:How to include non-api methods in custom build in ol3?如何在 ol3 的自定义构建中包含非 api 方法?
【发布时间】:2015-10-14 18:23:18
【问题描述】:

我需要使用在 OpenLayers 3 中未标记为 @api 的方法,即它不会在 OpenLayers 3 版本附带的默认最小化构建中导出。有问题的方法是:getTileCoordExtentol.tilegrid.TileGrid 类。

我尝试按照configuration documentation 中的建议在构建json 配置中添加"ol.tilegrid.TileGrid#getTileCoordExtent",但出现以下错误:

ERR! No matching symbol found: ol.tilegrid.TileGrid#getTileCoordExtent 

这是否意味着没有标记为@api 的方法不能被导出?除了编辑代码并自己添加@api之外,还有其他方法可以完成我想做的事情吗?

【问题讨论】:

  • 仅供参考,刚刚在 OL3 中合并了一个 PR,以便将这种方法包含在最小化的构建中,从而解决了我遇到的问题。虽然它没有回答这个问题,所以我仍然对此感到好奇。见:github.com/openlayers/ol3/pull/4283
  • exports 部分允许导出类的可导出方法(带有@api 标签的方法)。

标签: openlayers-3 google-closure-compiler google-closure


【解决方案1】:

借用 Andreas Hocevar 的回应:

导出由 tasks/generate-exports.js 从 build/info,json 读取符号确定。如果需要自定义符号,可以将它们添加到 info.json 中的symbols 对象中,例如

{
  "symbols": [
    {
      "name": "ol.tilegrid.TileGrid#getTileCoordExtent",
    }
  ]
}

当然你不应该这样做,除非你知道你不能保证你以这种方式添加的东西是稳定的。

原答案:https://groups.google.com/forum/#!msg/ol3-dev/HwWRoJF0eRU/MYvEa6-aAwAJ

【讨论】:

    猜你喜欢
    • 2017-01-25
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多