<p>Moment hat kein Standardmitglied</p>

Erstellt am 9. Jan. 2018  ·  4Kommentare  ·  Quelle: moment/moment

Beschreibung des Problems und Schritte zur Reproduktion:
Versuch, Instanz-Gebietsschema im Typoskript-Projekt zu implementieren
https://momentjs.com/docs/#/i18n/instance -locale/
aber wenn ich import moment from 'moment' erhalte, erhalte ich eine Fehlermeldung:
moment has no default export

Zweck:
Ich benötige in einigen Teilen der Anwendung benutzerdefinierte Formen (verkürzen, wie 'sec' statt 'seconds') von humanisierten Strings, daher möchte ich zwei Gebietsschemas in einer Ansicht verwenden.

Umfeld:
Typoskript-Projekt

Weitere Informationen, die hilfreich sein können:
TypeScript, Angular4

Wenn Sie ein Problem melden, führen Sie den folgenden Code in der von Ihnen verwendeten Umgebung aus und fügen Sie die Ausgabe ein:

console.log( (new Date()).toString())
console.log((new Date()).toLocaleString())
console.log( (new Date()).getTimezoneOffset())
console.log( navigator.userAgent)
console.log(moment.version)
Tue Jan 09 2018 15:46:46 GMT+0100 (CET)
VM12667:2 09/01/2018, 15:46:46
VM12667:3 -60
VM12667:4 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
VM12667:5 Uncaught ReferenceError: moment is not defined
    at <anonymous>:5:13



md5-1f8dcc13f1f8244065e29a6dcf5a9efa



import * as moment from 'moment';
console.log('version', moment.version);



md5-1f8dcc13f1f8244065e29a6dcf5a9efa



version 2.20.1

Ich möchte die import * as moment from 'moment'; Lösung verhindern, da sie drei Schütteln beim Bündeln blockiert

Vielen Dank! :)

Hilfreichster Kommentar

RTFM

Note: If you have trouble importing moment, try adding 
"allowSyntheticDefaultImports": true in compilerOptions 
in your tsconfig.json file and then use the syntax

https://momentjs.com/docs/#/use -it/typescript/

Alle 4 Kommentare

RTFM

Note: If you have trouble importing moment, try adding 
"allowSyntheticDefaultImports": true in compilerOptions 
in your tsconfig.json file and then use the syntax

https://momentjs.com/docs/#/use -it/typescript/

Besteht die Möglichkeit, dass dies so gelöst wird, dass allowSyntheticDefaultImport nicht mehr benötigt wird? Das Problem bei der Anforderung besteht darin, dass jeder, der den Moment verwendet, auch diese Einstellung aktiviert haben muss.

Indem Sie diese Einstellung nicht benötigen, können Sie moment problemlos in Projekten verwenden, die ihre eigene Präferenz für allowSyntheticDefaultImport , aber jetzt wird diese Einstellung effektiv jedem aufgezwungen.

Ich stimme hier nur ein, dass dies ein wirklich, wirklich, widerwärtiges Problem ist. Da moment entschieden hat, die offizielle Spezifikation nicht zu respektieren, bedeutet dies, dass einige Bibliotheken über import * as moment from "moment" während andere Bibliotheken über import defaultMoment from "moment" laufen. Wenn mein Projekt also versucht, beide zu laden, kann ich einfach nicht die richtigen Einstellungen erhalten, um Rollup zum richtigen Kompilieren zu erhalten. Ich habe fast jede Permutation und Kombination von allowSyntheticDefaultImports : true , esModuleInterop : true , moduleResolution : "node" und skipLibCheck : true ausprobiert und kann keine richtig funktionierende Permutation finden. Eine Lösung ermöglicht es einer Bibliothek mit einem Importformat zu arbeiten, aber sie schlägt im anderen fehl.

Es gibt einen Grund dafür, dass Spezifikationen existieren, und zwar um Konsistenz zu schaffen. Gibt es keine Möglichkeit, dass dieser Moment eine Moment-es-Variante oder etwas hat, das richtig importiert werden kann, so dass Leute, die der Spezifikation folgen möchten, einfach der Spezifikation folgen können, sodass die JS-Toolchain wie erwartet funktioniert, anstatt alle? hackt?

+1

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

RobinvanderVliet picture RobinvanderVliet  ·  3Kommentare

Delgan picture Delgan  ·  3Kommentare

M-Zuber picture M-Zuber  ·  3Kommentare

vbullinger picture vbullinger  ·  3Kommentare

tanepiper picture tanepiper  ·  3Kommentare