2
votes

Importer un moment dans Angular 6

J'ai importé le moment en angulaire 6:

ERROR in node_modules/@angular/core/src/render3/ng_dev_mode.d.ts(9,11): error TS2451: Cannot redeclare block-scoped variable 'ngDevMode'.
node_modules/angular-moment-timezone/node_modules/@angular/core/src/render3/ng_dev_mode.d.ts(9,11): error TS2451: Cannot redeclare block-scoped variable 'ngDevMode'.

et

import * as moment from 'moment';

qui semble bien fonctionner ... mais ng serve renvoie l'erreur suivante:

import { moment } from 'moment'

OK, je comprends cette erreur; il dit que le moment n'est pas exporté par défaut ... mais quand j'essaye d'exporter de cette façon:

Module '"/my/project/node_modules/moment/moment"' has no default export.

mais que, l'erreur dit que ce moment est en fait un objet, pas une fonction.

Comment cela a-t-il fonctionné dans la première étape? Comment importer le "moment"?

MISE À JOUR J'ai aussi essayé comme suggéré dans l'autre question ...

let formatted = moment(startDate).tz(timezone).format();

Mais j'ai eu le résultat suivant:

import moment from 'moment'

p >


5 commentaires

Copie possible de Comment importer moment.js avec dactylographié?


Pensez à utiliser Luxon qui est une réécriture moderne de Moment.


@HereticMonkey Wow, utile!


Non, ce n'est pas un doublon. La solution dans cette réponse ne résout pas mon problème. J'ai expliqué avec la MISE À JOUR


Votre problème est lié au fuseau horaire du moment angulaire de la bibliothèque, pas au moment en particulier. Essayez plutôt d'utiliser le fuseau horaire instantané.


3 Réponses :


5
votes

Essayez ce qui suit pour importer le moment:

import * as moment from 'moment';

J'espère que cela vous aidera!


5 commentaires

Veuillez consulter la mise à jour dans ma question, j'ai également un problème avec cette solution.


Vous indiquez que si vous supprimez cette importation et tout ce qui est lié au moment dans votre code, vous ne voyez pas ce problème lors de l'exécution de la compilation?


Je peux exécuter le code avec "import moment from 'moment'" ... mais je ne peux pas créer ou redémarrer le service. C'est ce que j'ai trouvé étrange.


C'est un problème plus important qui peut être résolu avec la mise à jour des versions d'Angular. github.com/angular/angular/issues/21670


Votre problème semble donc concerner spécifiquement la bibliothèque de fuseaux horaires angulaires. Pouvez-vous simplement utiliser le fuseau horaire instantané à la place? Essayez même de supprimer le fuseau horaire du moment angulaire et de supprimer tout code lié au fuseau horaire et il devrait se construire.




-4
votes

Vous pouvez importer le moment directement en angulaire en utilisant ceci: -

import * as moment from 'moment';


0 commentaires