2017-05-10 5 views
0

Über den Rahmen (während ich denke, das Problem selbst stark darauf verlassen nicht): Eckige 2 mit Webpackinjizieren ein erfordern in ein js Lieferantenmodul

Es ist die Bibliothek Leaflet.heat, die auf simpleheat beruht. Ich habe die fehlenden Typdefinitionen unter Kontrolle. ich den Import die Bibliotheken in meinem vendor.ts

[...] 
import 'simpleheat'; 
import 'leaflet.heat/src/HeatLayer'; 
[...] 

Innerhalb der HeatLayer class, die Funktion simpleheat:

[simpleheat.js] 
if (typeof module !== 'undefined') module.exports = simpleheat; 

function simpleheat(canvas) { 
... 

genannt wird. Die HeatLayer-Moduldatei benötigt jedoch keine simpleheat-Funktion in der Datei.
So eine Instanz von L.HeatLayer Werken zu schaffen, aber die Ausführung des jeweiligen Code in seiner Funktion nicht mit

ReferenceError: simpleheat is not defined 

Nun, dem Hinzufügen (zu Testzwecken) simpleheat = require('simpleheat'); in die HeatLayer Datei (Lieferant), es funktioniert .
Verständlicherweise möchte ich eine Herstellerdatei nicht ändern.

Frage:
Welche Möglichkeiten habe ich, um die Funktion simpleheat zugänglich aus dem Inneren des HeatLayer Modul zu machen?

Antwort

0

One-Lösung ich gerade gefunden:

Ändern der vendor.ts an folgende

:

(<any>window).simpleheat = require('simpleheat'); 
import 'leaflet.heat/src/HeatLayer'; 

Gibt es andere/bessere?

Verwandte Themen