Moment: [ES-Module] Fehlende js-Erweiterungen in Importanweisungen

Erstellt am 22. Juli 2018  ·  5Kommentare  ·  Quelle: moment/moment

Beschreibung des Problems und Schritte zur Reproduktion:

Beim Laden von src/moment.js mit <script type=module> :

Das Laden des Moduls mit der Quelle „ http://localhost :5000/node_modules/moment/src/lib/utils/hooks“ ist fehlgeschlagen.

Umfeld:

Jeder Browser mit Unterstützung für ES-Module.

Documentation wontfix

Hilfreichster Kommentar

Das Hinzufügen der Dateierweiterung .js zu allen Importen unter src/ kann leicht zu einer Kette von bis zu 105-228 HTTP-Anfragen führen (je nach Gebietsschema).

Ein passenderes Ergebnis könnte erzielt werden, indem die Eigenschaften esnext und module zu package.json hinzugefügt werden. Aus einer Reihe von Artikeln von Axel Rauschmayer scheint es, als ob Sie etwas wie wollen würden:

  "esnext": "src/moment.js",
  "module": "./moment.esm.js",

(wobei ./moment.esm.js ein neues Build-Ziel wäre, das ESM anstelle des CJS-Modulformats folgt)

Alle 5 Kommentare

Das Hinzufügen der Dateierweiterung .js zu allen Importen unter src/ kann leicht zu einer Kette von bis zu 105-228 HTTP-Anfragen führen (je nach Gebietsschema).

Ein passenderes Ergebnis könnte erzielt werden, indem die Eigenschaften esnext und module zu package.json hinzugefügt werden. Aus einer Reihe von Artikeln von Axel Rauschmayer scheint es, als ob Sie etwas wie wollen würden:

  "esnext": "src/moment.js",
  "module": "./moment.esm.js",

(wobei ./moment.esm.js ein neues Build-Ziel wäre, das ESM anstelle des CJS-Modulformats folgt)

+1 für ein neues esm-Build-Ziel. Als Referenz bietet Ractive.js eine .mjs-Dist-Datei

Ich werde eine PR zur Dokumentation dazu in https://github.com/moment/momentjs.com machen

Übrigens, selbst bei einer guten Anzahl von HTTP-Anfragen kann es praktisch sein, Browser-Builds für die Verwendung in Demos zu haben – wo die Demos nicht gezwungen sind, ihren HTML-Code mit globalen Skriptabhängigkeiten zu verschmutzen (ich weiß, es wäre nur ein Skript .) -Tag, wenn es einen IIFE- oder UMD-Build gibt, aber ein Skript-Tag ist immer noch fehl am Platz vom JS, das es verwendet und sauberer, um eine Modulverteilung zu haben).

@brettz9 Ich verletzen .

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

slavafomin picture slavafomin  ·  3Kommentare

vbullinger picture vbullinger  ·  3Kommentare

ninigix picture ninigix  ·  3Kommentare

IbraheemAlSaady picture IbraheemAlSaady  ·  3Kommentare

M-Zuber picture M-Zuber  ·  3Kommentare