Moment: La importación de módulos no funciona en la última versión de Chrome

Creado en 5 oct. 2017  ·  7Comentarios  ·  Fuente: moment/moment

Descripción del problema y pasos para reproducirlo:

La última versión de Chrome declara compatibilidad con la importación de módulos nativos. Pero la función requiere que se proporcione el nombre de archivo del módulo completo (incluida la extensión ".js").
En el código de biblioteca "importar ..." las entradas no tienen extensiones ".js", lo que genera errores 404 en el navegador.

FYI: Una cosa que podría (y hace en algunas plataformas) ocultar este problema es la configuración del servidor web.
El servidor web Apache en OSX parece tener la configuración "MultiViews" habilitada de forma predeterminada (lo que hace que el servidor busque el archivo "moment.js" si no se encuentra el archivo "moment"), pero en Ubuntu, por ejemplo, esta opción de servidor web está deshabilitado lo que hace que la carga del módulo falle.

Medio ambiente:

Chrome 61.0.3163.100 (64 bits) en 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 versión de moment.js es 2.18.1

Help Wanted Loading

Comentario más útil

Esto no es solo una cuestión de cromo. Hasta donde yo sé, la especificación del módulo es6 requiere un nombre de archivo en FromClause y no solo una cadena. Rollup y Webpack funcionan bien sin la extensión de archivo, pero eso es solo para facilitar la agrupación.

Y, en general, es mejor evitar que cualquier cargador adivine la extensión, así que sí, FromClauses debería ser realmente nombres de archivo completos.

Todos 7 comentarios

Esto no es solo una cuestión de cromo. Hasta donde yo sé, la especificación del módulo es6 requiere un nombre de archivo en FromClause y no solo una cadena. Rollup y Webpack funcionan bien sin la extensión de archivo, pero eso es solo para facilitar la agrupación.

Y, en general, es mejor evitar que cualquier cargador adivine la extensión, así que sí, FromClauses debería ser realmente nombres de archivo completos.

Sería realmente bueno ordenar esto, ya que ni la versión fuente ni la versión compilada funcionan cuando se usa una importación de módulo en los navegadores que lo admiten.

_Debería_ ser una solución rápida de simplemente agregar extensiones de archivo a las importaciones.
También para las personas que desean usar la versión compilada: para el uso global de Moment, la propiedad global debe volver a window ya que this es undefined .

¡Esto se resolvería mejor con relaciones públicas impulsadas por la comunidad!

aqui tienes

Esto sería ideal para su uso en un componente web de polímero. Ahora, no puedo usar moment js en un componente web estándar ES6 debido a esto.

¿Sigue siendo un problema? Me preocupa que agregar extensiones de archivo haga que Moment.js se rompa para algún otro subconjunto de usuarios ...

Creo que esto es un duplicado de https://github.com/moment/moment/issues/4713

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