关于框架(虽然我认为问题本身并不严重依赖于此):Angular 2 with Webpack
图书馆Leaflet.heat依赖于simpleheat。我控制了丢失的类型定义。
我正在vendor.ts
[...]
import 'simpleheat';
import 'leaflet.heat/src/HeatLayer';
[...]
在HeatLayer class内部,函数simpleheat:
[simpleheat.js]
if (typeof module !== 'undefined') module.exports = simpleheat;
function simpleheat(canvas) {
...
被调用。但是,HeatLayer模块文件不需要在其文件中进行简单的加热
因此,创建L.HeatLayer
的实例有效,但在其函数中执行相应代码失败
ReferenceError: simpleheat is not defined
现在,将simpleheat = require('simpleheat');
(用于测试目的)添加到HeatLayer文件(供应商)中,它可以正常工作。
可以理解,我不想修改供应商文件。
问题:
我可以使用哪些选项来使函数simpleheat
可以从HeatLayer模块中访问?
答案 0 :(得分:0)
我刚发现的一个解决方案:
将vendor.ts
更改为以下内容:
(<any>window).simpleheat = require('simpleheat');
import 'leaflet.heat/src/HeatLayer';
还有其他人/更好吗?