Gibt es eine Option, Elm mitzuteilen, auf welches Modulsystem Sie während der Kompilierungszeit abzielen? Z.B. etwas wie eine --target
Flagge. Ich muss zugeben, dass ich nicht so viel in elm-make gegraben habe.Angeben eines spezifischen Modulsystems beim Kompilieren von Elm (vs. Laufzeitprüfungen)
Derzeit scheint es, dass es nur während der Laufzeit auftritt:
Für meine Situation Ich bin:
- Mit Electron definiert seine eigene
module
Objekt und eine globalewindow
. - Verwenden Sie nur Elm für einen Teil des Projekts (Siehe HTML interop).
Standardmäßig werden die compiled output standardmäßig auszusetzen Elm auf module.exports
:
if (typeof define === "function" && define['amd'])
{
define([], function() { return Elm; });
return;
}
if (typeof module === "object")
{
module['exports'] = Elm;
return;
}
var globalElm = this['Elm'];
if (typeof globalElm === "undefined")
{
this['Elm'] = Elm;
return;
}
In Debug-Tools:
Stattdessen möchte ich es belichten auf this
/window
und überschreiben Sie nicht module.exports
mit dem Elm-Objekt.
konnte ich eine Lösung, die Mißbräuche der AMD-Check hacken zusammen:
<script>
window.define = (arr, fn) => {
const Elm = fn();
window.Elm = Elm;
};
window.define.amd = true;
</script>
<script src="build/tronwm.js"></script>
<script>
const node = document.getElementById('elm-render');
const app = window.Elm.TronWM.embed(node);
</script>
Das ist für jetzt funktioniert, aber neugierig von alternativen Lösungen, falls vorhanden.