Moment: L'importation de module ne fonctionne pas dans la dernière version de Chrome

Créé le 5 oct. 2017  ·  7Commentaires  ·  Source: moment/moment

Description du problème et étapes à suivre pour le reproduire:

La dernière version de Chrome déclare la prise en charge de l'importation de modules natifs. Mais la fonctionnalité nécessite que le nom de fichier complet du module soit fourni (y compris l'extension ".js").
Dans le code de bibliothèque, les entrées "import ..." n'ont pas d'extensions ".js", ce qui entraîne des erreurs 404 dans le navigateur.

FYI: Une chose qui pourrait (et fait sur certaines plates-formes) cacher ce problème est une configuration de serveur Web.
Le serveur Web Apache sur OSX semble avoir le paramètre "MultiViews" activé par défaut (ce qui oblige le serveur à trouver le fichier "moment.js" s'il n'y a pas de fichier "moment" trouvé), mais sur Ubuntu, par exemple, cette option de serveur Web est désactivé, ce qui fait échouer le chargement du module.

Environnement:

Chrome 61.0.3163.100 (64 bits) sur 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

La version moment.js est la 2.18.1

Help Wanted Loading

Commentaire le plus utile

Ce n'est pas seulement une chose de chrome. Pour autant que je sache, la spécification du module es6 nécessite un nom de fichier dans FromClause et pas seulement une chaîne. Rollup et Webpack fonctionnent correctement sans l'extension de fichier, mais ce n'est que pour faciliter le regroupement.

Et dans l'ensemble, il vaut mieux éviter de laisser n'importe quel chargeur deviner l'extension, donc oui, les FromClauses devraient vraiment être des noms de fichiers complets.

Tous les 7 commentaires

Ce n'est pas seulement une chose de chrome. Pour autant que je sache, la spécification du module es6 nécessite un nom de fichier dans FromClause et pas seulement une chaîne. Rollup et Webpack fonctionnent correctement sans l'extension de fichier, mais ce n'est que pour faciliter le regroupement.

Et dans l'ensemble, il vaut mieux éviter de laisser n'importe quel chargeur deviner l'extension, donc oui, les FromClauses devraient vraiment être des noms de fichiers complets.

Ce serait vraiment bien de le faire trier car ni la version source ni la version compilée ne fonctionnent lors de l'utilisation d'un module d'importation dans les navigateurs qui le prennent en charge.

Cela devrait être une solution rapide pour simplement ajouter des extensions de fichier aux importations.
Aussi pour les personnes souhaitant utiliser la version compilée - pour une utilisation globale de Moment, la propriété global doit se replier sur window comme this est undefined .

Ce serait mieux résolu par un PR axé sur la communauté!

c'est parti

Ce serait idéal pour une utilisation dans un composant Web Polymer. Maintenant, je ne parviens pas à utiliser moment js dans un composant Web ES6 standard à cause de cela.

Est-ce toujours un problème? Je crains que l'ajout d'extensions de fichiers ne provoque la rupture de Moment.js pour un autre sous-ensemble d'utilisateurs ...

Je pense que c'est un double de https://github.com/moment/moment/issues/4713

Cette page vous a été utile?
0 / 5 - 0 notes