Moment: La ruta './locale' no se encuentra en el momento / src / lib / locale / locales.js

Creado en 19 mar. 2018  ·  54Comentarios  ·  Fuente: moment/moment

WARNING in ./node_modules/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in 'D:\project-fed\ecloud\client-web\node_modules\moment\src\lib\locale'

Descubrí que hay algo mal con la función a continuación

function loadLocale(name) {
    var oldLocale = null;
    // TODO: Find a better way to register and load all the locales in Node
    if (!locales[name] && (typeof module !== 'undefined') &&
            module && module.exports) {
        try {
            oldLocale = globalLocale._abbr;
            var aliasedRequire = require;
            aliasedRequire('./locale/' + name);
            getSetGlobalLocale(oldLocale);
        } catch (e) {}
    }
    return locales[name];
}

aliasedRequire('./locale/' + name); , ¿debería ser ../locale/ ?

Troubleshooting

Comentario más útil

Simplemente importe como se muestra a continuación y ya está funcionando:

importar momento de 'momento / momento';

Todos 54 comentarios

Veo esta misma advertencia cuando uso el paquete web para agrupar el momento. ¿Alguna idea de cuándo se introdujo este error?

Tengo la misma advertencia usando angular-cli, ¿alguna solución?

Tener el mismo problema. ¿Conoce alguna solución o corrección?

El mismo problema: parece un problema de ruta con './locale' vs '../locale'. ¿Alguien está investigando este error?

https://github.com/moment/moment/issues/2979

Parece que ha sido el caso durante años, no tengo ni idea de por qué no lo arreglarán. También me encontré con esto al intentar usar jsnext: main en webpack en lugar de main.

Mi solución para seguir usando

... resolve: { alias: { moment$: path.resolve(root_dir, "node_modules/moment/moment.js") } }

Lo anterior no funcionó para mí, pero seguir este tutorial me ayudó a solucionarlo.

https://alligator.io/angular/custom-webpack-config/

¿Hay algo nuevo en esto? Estoy usando Laravel Mix ... lo mismo aquí ...

hago

import * as moment from 'moment';

y eso funciona.

hago

import * as moment from 'moment';

y eso funciona.

dentro del paquete web? Estoy pensando en cómo hacer esto con Laravel Mix ..

@marcelogarbin oh lo siento, no me he metido con Laravel desde la versión 4. Me disculpo, pero no sé cómo hacer que funcione con laravel mix.

Simplemente importe como se muestra a continuación y ya está funcionando:

importar momento de 'momento / momento';

La solución de @yaasinhamidi funcionó

hago

import * as moment from 'moment';

y eso funciona.

¿Dónde debería colocarse esta línea?

Experimentando este mismo problema por primera vez después de actualizar a 2.25.0. También estoy usando Laravel Mix (tenga en cuenta que nunca experimenté este problema en ninguna versión anterior).

mi solución es volver a 2.24.0

Me enfrento al mismo problema después de actualizar

Hasta que se solucione, volver a la v2.24.0 resuelve este problema.

Volver a la versión 2.24.0 también funcionó para mí.

para cualquier otra persona que experimente este problema, también tuve que forzar las versiones de los momentos que otros paquetes en mi carpeta node_modules/ incorporaron como dependencias a v2.24.0 también

usando hilo, agregando esta línea a package.json ordenó las cosas para mí

"resolutions": {
        "**/moment": "2.24.0"
    },

¡Hola chicos!
Enfrenté el mismo problema de las últimas horas y finalmente lo resolví cambiando la versión del momento.

En los comentarios anteriores vi la solución final.

Razón:
_moment lanzó la nueva versión hace 17 horas de 2.24.0 a 2.25.0_

Solución:
Paso 1: cambia las versiones

  • "momento": "2.24.0",
  • "moment-timezone": "^ 0.5.28",

Paso 2: Si está utilizando hilo, agregue resoluciones en su archivo package.json como este
"dependencias" {
"momento": "2.24.0",
"momento-zona horaria": "^ 0.5.28"
},
"resoluciones": {
"momento": "2.24.0"
},

Gracias.

Incluso si lo tiene, siguiendo el bloque. El package-lock.json creará una nueva versión, es decir, 2.5.1. Así que cámbielo a "momento": "2.24.0" hasta que se solucione el problema.
"dependencias" {
"momento": "^ 2.24.0", ----------------> "momento": "2.24.0"
},

volví a 2.24.0 pero sigo teniendo la misma advertencia al usar el nodo

Es extraño que comencé a recibir este error hoy después de volver a instalar las dependencias, la solución sugerida de ignorar los complementos locales con el paquete web no funcionó. Lo que funcionó fue dejar la versión fijada en 2.24.0 como sugirió @ sachins81 . Me pregunto si algo relevante cambió en confirmaciones recientes. @ichernev

volví a 2.24.0 pero sigo teniendo la misma advertencia al usar el nodo
@nitindevelopermca Asegúrese de que sea "2.24.0" y no "^ 2.24.0". (Funcionó para mí después de cambiarlo)

Acabo de volver a "^ 2.18.1" y todo parece funcionar bien.

El mismo problema al usar react, el momento no depende de mi proyecto, por lo que no puedo revertirlo

El mismo problema al usar react, el momento no depende de mi proyecto, por lo que no puedo revertirlo

Puede ejecutar estos comandos por ahora.

npm install [email protected] --save

Tuve el mismo caso y cuando busqué de alguna manera, antd estaba usando el momento como una dependencia y espero que el problema del momento se cierre en la próxima versión mientras vi que lanzaron una nueva versión, así que primero pruebe la última versión que es 2.25.1 y luego Intente agregar el momento como una dependencia.

¡Gracias!

Me ayudó a cambiar a la versión fija 2.24.0 dentro de dependencies y dentro de resolutions . Utilizo el paquete dentro de mi código y como una dependencia de react y antd .

Si tiene varios espacios de trabajo, no olvide cambiar todos los archivos package.json . Olvidé esto al principio.

El mismo problema sucedió en v2.25.1, luego trato de agregar estos en package.json (uso hilo):

"dependencies" {
  "moment": "2.24.0"
},
"resolutions": {
  "moment": "2.24.0"
},

El mismo error aquí. Yo he

"dependencies": {
    "moment": "^2.25.1"
}

y cuando ejecuto npm run production obtengo:
shell script WARNING in ./node_modules/moment/src/lib/locale/locales.js Module not found: Error: Can't resolve './locale' in '/var/www/apf.local/html/node_modules/moment/src/lib/locale' @ ./node_modules/moment/src/lib/locale/locales.js @ ./node_modules/moment/src/lib/locale/locale.js @ ./node_modules/moment/src/moment.js @ ./resources/js/app.js @ multi ./resources/js/app.js

Con la versión ~2.24.0 , todo funciona como se esperaba.

¡Hola chicos!
Enfrenté el mismo problema de las últimas horas y finalmente lo resolví cambiando la versión del momento.

En los comentarios anteriores vi la solución final.

Razón:
_moment lanzó la nueva versión hace 17 horas de 2.24.0 a 2.25.0_

Solución:
Paso 1: cambia las versiones

  • "momento": "2.24.0",
  • "moment-timezone": "^ 0.5.28",

Paso 2: Si está utilizando hilo, agregue resoluciones en su archivo package.json como este
"dependencias" {
"momento": "2.24.0",
"momento-zona horaria": "^ 0.5.28"
},
"resoluciones": {
"momento": "2.24.0"
},

Gracias.

Simplemente importe como se muestra a continuación y ya está funcionando:

importar momento de 'momento / momento';

¡estupendo! ¡funciona!

Gracias .
Funciona bien. solo importa la línea de abajo:
importar * como momento de 'momento / momento';

Simplemente importe como se muestra a continuación y ya está funcionando:

importar momento de 'momento / momento';

Solución fantástica :) resolvió un gran dolor de cabeza con esto

Fantastic fix :) solved a major headache with this

Solución mediocre, si alguien no tiene antd como dependencia directamente.

Me encontré con el mismo problema pero no tengo momentjs en las dependencias. Pero antd lo hace.
Y npm no puede funcionar con resoluciones.

La única solución para mí en este momento es degradar antd.
No puedo ver la solución adecuada que no incluiría un paquete adicional para que las cosas funcionen.

Tengo el mismo problema en mi aplicación React que, por alguna razón, comenzó a aparecer de la nada. He estado usando moment en esta aplicación desde siempre y nunca había notado este error. En realidad, se convirtió en un error en mi caso, ya que mi aplicación React no se compilaba debido a este problema.

Luego probé import moment from 'moment/moment'; que solucionó el problema de compilación, pero sigo recibiendo la siguiente advertencia cada vez que ejecuto la aplicación.

./node_modules/moment/src/lib/locale/locales.js
Module not found: Can't resolve './locale' in 'C:\Users\myname\source\repos\myapp\node_modules\moment\src\lib\locale'

La única gracia salvadora es que mi aplicación React, al menos, se compila y funciona bien.

También tengo el mismo problema con create-react-app (plantilla mecanografiada). Intenté import moment from 'moment'; Luego recibí el error:
./node_modules/moment/src/lib/locale/locales.js Module not found: Can't resolve './locale' in 'D:\MyName\Learning\ProjectName\node_modules\moment\src\lib\locale'

@devayarhlaine He publicado una solución temporal en los comentarios anteriores, compruébalo.

Fue un problema de nueva versión del momento.

Lo mismo s arriba:
También tengo el mismo problema con "No se puede encontrar el módulo 'momento'".
El uso de la solución con "importar * como momento de" momento / momento "resolvió un problema.
Pero luego recibí el error:
./node_modules/moment/src/lib/locale/locales.js Módulo no encontrado: No se puede resolver './locale' en 'D: \ MyName \ Learning \ ProjectName \ node_modulesmoment \ src \ lib \ locale'
y la degradación no es una solución (en mi opinión :-).

Obtuve este error al actualizar de angular 8 a angular 9.1.
La actualización al momento 2.25.1 resolvió el problema # 5486 ("TS2307: No se puede encontrar el módulo 'momento'."), Pero el error de configuración regional persistió.

Para aquellos que usan el comando "yarn create react-app", la solución es editar node_modules / react-scripts / config / webpack.config.js para agregar el alias como se muestra a continuación.

moment$: 'moment/moment.js'

Inserte la línea anterior en el bloque de alias en la línea número 311.

alias: {
  // Support React Native Web
  // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/
  'react-native': 'react-native-web',
  // Allows for better profiling with ReactDevTools
  ...(isEnvProductionProfile && {          'react-dom$': 'react-dom/profiling',
  'scheduler/tracing': 'scheduler/tracing-profiling',        }),
  ...(modules.webpackAliases || {}),        
  moment$: 'moment/moment.js'
},

Otra forma de resolver esto es reemplazar moment.js con Day.js. Siga las instrucciones de esta URL para usar react-app-rewired >> https://ant.design/docs/react/use-with-create-react-app. Modifique package.json de acuerdo con las instrucciones. Luego cree un config-overrides.js en la carpeta raíz como se muestra a continuación. Esto tiene la ventaja de reducir el js de 231.11kb a 11.11kb de acuerdo con este https://github.com/ant-design/antd-dayjs-webpack-plugin.

const { override, addWebpackPlugin } = require('customize-cra');    
const AntdDayjsWebpackPlugin = require('antd-dayjs-webpack-plugin');

module.exports = override(
        addWebpackPlugin(new AntdDayjsWebpackPlugin())
);

Simplemente importe como se muestra a continuación y ya está funcionando:

importar momento de 'momento / momento';

¡¡¡Fantástica solución !!!

Simplemente importe como se muestra a continuación y ya está funcionando:

importar momento de 'momento / momento';

Trabajó para mi

Parece que la raíz del problema fue causada por el campo "module" en package.json (https://github.com/moment/moment/commit/9ce89e7fea881b39be23b8c0646f7ef7817985d9)

aquí está PR para solucionarlo https://github.com/moment/moment/pull/5503

Sí, eliminar "module": "./src/moment.js", de package.json hizo que la advertencia desapareciera para mí. Por cierto, la mía es una aplicación React - create-react-app y estoy usando "moment": "^2.25.1" . Aunque estaba usando la última versión, seguía recibiendo este error, pero la actualización de package.json parece solucionar el problema. Gracias @ApacheEx

He solucionado este error, al menos para mí.

Fui a node_modules / moment / src / lib / locale /
Modificó el archivo locales.js, ctrl + f y busque './locale'+name line.
Cámbielo a './'+name .
No sé por qué apunta a la misma carpeta y '/.locale' + nombre, es por eso que el error dice que no se puede resolver ./locale

Para ser honesto, copié la línea original y comenté justo arriba, si en el futuro aparece un error.

Si ayuda, apruebe. Este tipo de errores son los peores ...

Tener el mismo problema, revertido a 2.24 hasta que haya una solución disponible. No puedo editar los archivos del módulo, ya que estoy construyendo en un servidor automático, por lo que estoy esperando un lanzamiento oficial.

Tengo el mismo problema con la versión 2.24 y 2.25.1
WARNING in ./node_modules/moment/src/lib/locale/locales.js

Cuando abro la consola del navegador, veo este error:
TypeError: Cannot read property 'defineLocale' of undefined at locales.min.js:1

Tenemos el mismo problema con el momento 2.22.

Simplemente importe como se muestra a continuación y ya está funcionando:

importar momento de 'momento / momento';

¿Dónde debería colocarse esta línea?

Simplemente importe como se muestra a continuación y ya está funcionando:
importar momento de 'momento / momento';

¿Dónde debería colocarse esta línea?

En el archivo que desea, use momentjs en ecmascript como se muestra a continuación:

import moment from 'moment/moment';
(() => {
const now = moment(moment.now());
console.log(now);
})

2.25.3 debería solucionar este problema.
Abra otro problema si aún tiene desafíos.
O puede probar Stack Overflow para más preguntas individuales.

Este alias con la configuración de WebPack me soluciona un problema:

resolve: {
  extensions: ['.js', '.ts'],
  alias: {
    './locale': 'moment/locale'
  }
}

Si está utilizando moment-timezone:
https://github.com/moment/moment-timezone/issues/837

Arreglo esto con esto:

import moment from 'moment'; import 'moment/locale/pt-br';

funciona, y la configuración regional está configurada en 'pt-br', y todos los demás idiomas también funcionan.

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

Temas relacionados

Delgan picture Delgan  ·  3Comentarios

benhathaway picture benhathaway  ·  3Comentarios

paulyoung picture paulyoung  ·  3Comentarios

Shoroh picture Shoroh  ·  3Comentarios

M-Zuber picture M-Zuber  ·  3Comentarios