Moment: Der Modulimport funktioniert in der neuesten Version von Chrome nicht

Erstellt am 5. Okt. 2017  ·  7Kommentare  ·  Quelle: moment/moment

Beschreibung des Problems und der zu reproduzierenden Schritte:

Die neueste Version von Chrome erklärt, dass native Module importiert werden. Für die Funktion muss jedoch der vollständige Name der Moduldatei angegeben werden (einschließlich der Erweiterung ".js").
Im Bibliothekscode haben "import ..." Einträge keine ".js" -Erweiterungen, was zu 404 Fehlern im Browser führt.

Zu Ihrer Information: Eine Sache, die dieses Problem möglicherweise (und auf einigen Plattformen) verbirgt, ist eine Webserverkonfiguration.
Auf dem Apache-Webserver unter OSX ist anscheinend standardmäßig die Einstellung "MultiViews" aktiviert (wodurch der Server die Datei "moment.js" findet, wenn keine "moment" -Datei gefunden wird), unter Ubuntu jedoch beispielsweise diese Webserveroption ist deaktiviert, wodurch das Laden des Moduls fehlschlägt.

Umgebung:

Chrome 61.0.3163.100 (64 Bit) unter Ubuntu 16.04

console.log( (new Date()).toString())
console.log((new Date()).toLocaleString())
console.log( (new Date()).getTimezoneOffset())
console.log( navigator.userAgent)
VM3015:1 Thu Oct 05 2017 19:30:43 GMT+0600 (+06)
VM3015:2 05.10.2017, 19:30:43
VM3015:3 -360
VM3015:4 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36

moment.js Version ist 2.18.1

Help Wanted Loading

Hilfreichster Kommentar

Dies ist nicht nur eine Chrom-Sache. Soweit ich weiß, erfordert die es6-Modulspezifikation einen Dateinamen in der FromClause und nicht nur eine Zeichenfolge. Rollup und Webpack funktionieren ohne die Dateierweiterung einwandfrei, aber das erleichtert nur das Bündeln.

Und insgesamt ist es besser , jede Lader die Erweiterung erraten vermeiden lassen, also ja, die FromClauses sollten wirklich vollständige Dateinamen sein.

Alle 7 Kommentare

Dies ist nicht nur eine Chrom-Sache. Soweit ich weiß, erfordert die es6-Modulspezifikation einen Dateinamen in der FromClause und nicht nur eine Zeichenfolge. Rollup und Webpack funktionieren ohne die Dateierweiterung einwandfrei, aber das erleichtert nur das Bündeln.

Und insgesamt ist es besser , jede Lader die Erweiterung erraten vermeiden lassen, also ja, die FromClauses sollten wirklich vollständige Dateinamen sein.

Es wäre wirklich gut, dies zu sortieren, da weder die Quellversion noch die kompilierte Version funktionieren, wenn ein Modulimport in Browsern verwendet wird, die dies unterstützen.

Es sollte eine schnelle Lösung sein, nur Dateierweiterungen zu den Importen hinzuzufügen.
Auch für Benutzer, die die kompilierte Version verwenden möchten - für die globale Verwendung von Moment muss die Eigenschaft global auf window zurückgreifen, da this undefined .

Dies lässt sich am besten durch eine Community-gesteuerte PR lösen!

hier gehts

Dies ist ideal für die Verwendung in einer Polymer-Webkomponente. Aus diesem Grund gelingt es mir nicht, moment js in einer Standard-ES6-Webkomponente zu verwenden.

Ist das noch ein Problem? Ich mache mir Sorgen, dass das Hinzufügen von Dateierweiterungen dazu führen kann, dass Moment.js für eine andere Untergruppe von Benutzern nicht mehr funktioniert ...

Ich denke, dies ist ein Duplikat von https://github.com/moment/moment/issues/4713

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen