【问题标题】:npm packages client side with browserifynpm 使用 browserify 打包客户端
【发布时间】:2016-08-15 18:45:39
【问题描述】:

我正在尝试将 NPM 包 Leaflet-pip 用于我的客户端应用程序。

在 index.js 中

var lpip = require('leaflet-pip');

我在控制台中输入了命令

浏览 index.js > bundle.js

在 index.html 中

<script src="bundle.js"></script>
<script type="text/javascript">
  var mymap = L.map('map');
  function clickHandler(e) {
    mymap.eachLayer( function(overlay) {
      if(leafletPip.pointInLayer(e.latlng, overlay.feature)) {
        console.log(overlay.feature);
        console.log("Inside!");
      }
    }
  }
  mymap.on("click", clickHandler);
</script>

我不断收到错误

未捕获的 ReferenceError:leafletPip 未定义

【问题讨论】:

  • 你说var lpip,大概leafletPip没有定义,因为那不是你所说的变量。
  • 如果我将var leafletPip = require('leaflet-pip'); 放在 index.js 中重新运行 browserify 语句,也会发生同样的错误(我还重置了缓存以确保)
  • 另外,如果我查看由 browserify 语句创建的 bundle.js 文件,那里也有一个 var leafletPip ...。这就是我使用var lpip 的原因(我的故障排除)

标签: node.js leaflet


【解决方案1】:

您需要将leafletPip 添加到包中的窗口对象。

所以var leafletPip = window.leafletPip = require('leaflet-pip‌​') 应该可以工作

【讨论】:

  • 这似乎有效。现在到其他错误......像layer.eachLayer 不是leaflet-pip 中的函数。我想我必须传递整个 geojson 对象
猜你喜欢
  • 1970-01-01
  • 2016-05-06
  • 2020-02-29
  • 2014-04-21
  • 2017-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多