Moment: [Módulos ES] Faltan extensiones js en declaraciones de importación

Creado en 22 jul. 2018  ·  5Comentarios  ·  Fuente: moment/moment

Descripción del problema y pasos para reproducirlo:

Al cargar src/moment.js con <script type=module> :

Error al cargar el módulo con fuente “ http: // localhost : 5000 / node_modules / moment / src / lib / utils / hooks”.

Medio ambiente:

Cualquier navegador con soporte para módulos ES.

Documentation wontfix

Comentario más útil

Agregar la extensión de archivo .js a todas las importaciones por debajo de src/ podría conducir fácilmente a una cadena de hasta 105-228 solicitudes HTTP (según las configuraciones regionales)

Se puede lograr un resultado más apropiado agregando propiedades esnext y module a package.json . De una serie de artículos de Axel Rauschmayer , parece que querrías algo como:

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

(donde ./moment.esm.js sería un nuevo objetivo de compilación, siguiendo ESM en lugar del formato del módulo CJS)

Todos 5 comentarios

Agregar la extensión de archivo .js a todas las importaciones por debajo de src/ podría conducir fácilmente a una cadena de hasta 105-228 solicitudes HTTP (según las configuraciones regionales)

Se puede lograr un resultado más apropiado agregando propiedades esnext y module a package.json . De una serie de artículos de Axel Rauschmayer , parece que querrías algo como:

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

(donde ./moment.esm.js sería un nuevo objetivo de compilación, siguiendo ESM en lugar del formato del módulo CJS)

+1 para un nuevo objetivo de compilación de esm. Como referencia, Ractive.js proporciona un archivo dist .mjs

Tomaré un PR sobre documentación sobre esto en https://github.com/moment/momentjs.com

Por cierto, incluso con una buena cantidad de solicitudes HTTP, puede ser conveniente tener compilaciones de navegador para usar en demostraciones, donde las demostraciones no están obligadas a contaminar su HTML con dependencias de scripts globales (sé que solo sería un script etiqueta si hay una compilación IIFE o UMD, pero una etiqueta de script aún está fuera de lugar del JS que la usa y es más limpia para tener una distribución de módulo).

@ brettz9 Veré las relaciones públicas que no rompan a ningún usuario existente.

¿Fue útil esta página
0 / 5 - 0 calificaciones