Moment: Módulo no encontrado: Error: No se puede resolver '../moment' con Webpack y TypeScript

Creado en 11 ene. 2019  ·  9Comentarios  ·  Fuente: moment/moment

Describe el error

Si intento compilar mi aplicación TypeScript con webpack, obtengo un error para cada configuración regional que "../moment" no se puede resolver.

Este error se repite para todas las demás configuraciones regionales:

ERROR in ./node_modules/moment/locale/km.js
Module not found: Error: Can't resolve '../moment' in 'C:\PROGS\dev\var\private\moment-test\node_modules\moment\locale'
 @ ./node_modules/moment/locale/km.js 5:50-70
 @ ./node_modules/moment/locale sync ^\.\/.*$
 @ ./node_modules/moment/moment.js
 @ ./src/app.ts

Reproducir

src / app.ts

import * as moment from "moment";
console.log(moment().format("YYYY"));

package.json

{
    "private": true,
    "dependencies": {
        "moment": "2.23.0"
    },
    "devDependencies": {
        "awesome-typescript-loader": "5.2.1",
        "typescript": "3.2.2",
        "webpack": "4.28.3",
        "webpack-cli": "3.2.1"
    }
}

tsconfig.json

{ "include": [ "./src/" ] }

webpack.config.js

module.exports = {
    entry: "./src/app.ts",
    output: { filename: "bundle.js" },
    resolve: { extensions: [".ts"] },
    module: { rules: [ { test: /\.ts$/, use: { loader: "awesome-typescript-loader" } } ] }
}

Comportamiento esperado

yarn run webpack -p debería funcionar sin ningún error.

Entorno específico de un momento

  • Windows 10
  • Nodo 10.15.0
  • momento 2.23.0
  • TypeScript 3.2.2
  • Webpack 4.28.3
  • Zona horaria: CET (UTC + 1)

Ejecute el siguiente código en su entorno e incluya el resultado:

console.log((new Date()).toString())
console.log((new Date()).toLocaleString())
console.log((new Date()).getTimezoneOffset())
console.log(navigator.userAgent)
console.log(moment.version)

¡Este código falla con los mismos errores!

Comentario más útil

Estaba enfrentando el mismo problema, aquí estaba el problema:

  • Lo instalé usando el comando personalizado npm i --save react-moment , que se acaba de agregar en el archivo package.json pero lib no estaba allí en node_modules, así que para hacerlo ejecuto
  • npm install --save moment react-moment
  • y ahora está funcionando como se esperaba.

Todos 9 comentarios

Gracias por abrir esta solicitud.
Esta es una gran pregunta para Stack Overflow .

Esto es un error, ¿no? Stack Overflow es bueno para la pregunta, pero nadie solucionará los errores allí.

Interpreto que su respuesta significa que no es compatible con WebPack con TypeScript. ¡Demasiado!

Hay varios tutoriales en Internet sobre el uso de Moment con Webpack y TypeScript. Parece que muchos otros los usan juntos muy bien. Si más personas tienen este problema y hay suficiente conocimiento de la comunidad para solucionarlo, entonces podemos intentar hacerlo.

Por cierto, tuve el mismo problema: parece ser causado por lugares de momento, que no me importaron. Encontré una solución en este artículo en

complementos: [nuevo paquete web.IgnorePlugin (/^.\/ locale $ /, / moment $ /)]

Este parece un escenario de uso bastante común, por lo que recomendaría vincular a la página anterior desde la sección TypeScript de los documentos .

@ authguidance-examples ¡Los RP son bienvenidos en https://github.com/moment/momentjs.com !

Estaba enfrentando el mismo problema, aquí estaba el problema:

  • Lo instalé usando el comando personalizado npm i --save react-moment , que se acaba de agregar en el archivo package.json pero lib no estaba allí en node_modules, así que para hacerlo ejecuto
  • npm install --save moment react-moment
  • y ahora está funcionando como se esperaba.

¿Alguien sabe por qué siempre se muestran como "hace unos segundos"? cualquiera que sea la fecha

agregué el momento en reactjs: import * as moment from "moment"; y en la inyección de dependencia agregó: "momento": "2.23.0", pero obteniendo el

error indefinido ... en reactjs,
Amablemente ayuda ...

¿Por qué no está cerrada esta sucursal? Último comentario el 2 de diciembre de 2019. @marwahaha

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