Moment: [Modules ES] Extensions js manquantes dans les instructions d'importation

Créé le 22 juil. 2018  ·  5Commentaires  ·  Source: moment/moment

Description du problème et étapes à reproduire :

Lors du chargement de src/moment.js avec <script type=module> :

Le chargement a échoué pour le module avec la source « http://localhost :5000/node_modules/moment/src/lib/utils/hooks ».

Environnement:

Tout navigateur prenant en charge les modules ES.

Documentation wontfix

Commentaire le plus utile

L'ajout de l'extension de fichier .js à toutes les importations sous src/ pourrait facilement conduire à une chaîne de 105 à 228 requêtes HTTP (selon les paramètres régionaux)

Un résultat plus approprié peut être obtenu en ajoutant les propriétés esnext et module à package.json . D'après une série d'articles d'Axel Rauschmayer, il semble que vous voudriez quelque chose comme :

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

(où ./moment.esm.js serait une nouvelle cible de build, suivant ESM au lieu du format de module CJS)

Tous les 5 commentaires

L'ajout de l'extension de fichier .js à toutes les importations sous src/ pourrait facilement conduire à une chaîne de 105 à 228 requêtes HTTP (selon les paramètres régionaux)

Un résultat plus approprié peut être obtenu en ajoutant les propriétés esnext et module à package.json . D'après une série d'articles d'Axel Rauschmayer, il semble que vous voudriez quelque chose comme :

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

(où ./moment.esm.js serait une nouvelle cible de build, suivant ESM au lieu du format de module CJS)

+1 pour une nouvelle cible de build esm. Pour référence, Ractive.js fournit un fichier dist .mjs

Je vais prendre un PR sur la documentation à ce sujet dans https://github.com/moment/momentjs.com

Btw, même avec un bon nombre de requêtes HTTP, il peut être pratique d'avoir des versions de navigateur à utiliser dans les démos - où les démos ne sont pas obligées de polluer leur HTML avec des dépendances de script globales (je sais que ce serait juste un script balise s'il existe une version IIFE ou UMD, mais une balise de script n'est toujours pas à sa place dans le JS qui l'utilise et plus propre pour avoir une distribution de module).

@ brettz9 Je vais regarder les PR qui ne cassent aucun utilisateur existant.

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