Rolf B: Neues Firefox Update javascript

Beitrag lesen

Hallo Der,

Der Sinn erschließt sich mir aber noch nicht, denn dazu dient doch eigentlich das src-Attribut des script-Elements.

Nicht nur, es auch um import-Statements in ES6-Modulen. Die müssen das zu importierende Script eindeutig adressieren, so wie auch Bilder oder Stylesheets. Entweder mit absolutem oder mit relativem Pfad.

import someFunc from "https://cdn.example.org/libs/demolib/v4/functions.js";
import otherFunc from "./modules/foo.js";

Der erste Import zeigt eins der Probleme: Was ist, wenn Du auf demolib V5 umsteigst? Dann musst Du alle imports ändern, die darauf verweisen. Und eigentlich ist es ja auch Käse, den kompletten Pfad im Sourcecode zu haben und nicht nur einen symbolischen Namen.

Module-Loader wie require.js oder CommonJS (in Node.js) bieten da eine Modul-Registry, mit der Du symbolische Namen festlegst und in den Modulen nicht wissen musst, wo die importierten Module liegen.

Und genau das wird mit import maps nachgebildet.

import someFunc from "demolib/functions";
import otherFunc from "foo";

liest sich doch viel besser, oder?

Möglich wird das durch diesen Script-Block im HTML Dokument (den man bei Verwendung von PHP includen kann):

<script type="importmap">
{
  "imports": {
    "demolib/functions": "https://cdn.example.org/libs/demolib/v4/functions.js",
    "foo": "./modules/foo.js"
  }
}
</script>

Da steckt noch eine ganze Menge mehr hinter, ich hab nur keine Zeit dazu einen Wikiartikel zu schreiben.

Zum Einlesen

Rolf

--
sumpsi - posui - obstruxi