Moment: Obteniendo el error del paquete web después de la actualización a 2.19.0

Creado en 10 oct. 2017  ·  23Comentarios  ·  Fuente: moment/moment

No sé si está relacionado con el #4216 porque estoy usando Angular 4.4.4 y ese es un problema React , así que lo publico como un problema separado.

Recibí el siguiente error después de la actualización:

__WEBPACK_IMPORTED_MODULE_2_moment__ is not a function

Estoy usando los siguientes moment paquetes

"moment": "2.19.0",
"@types/moment": "2.13.0",   

El código donde obtengo el error es bastante simple:

import * as moment from 'moment';
...

  if (moment().year() !== this.mainData.activeYear)

...

Comentario más útil

Aquí igual. No usar Angular o React. Este es mi error de paquete web:

WARNING in ./~/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/data/jenkins/workspace/project/node_modules/moment/src/lib/locale'
./~/moment/src/lib/locale/locales.js 65:16-60
./~/moment/src/lib/locale/locale.js
./~/moment/src/moment.js
./script.js

Todos 23 comentarios

+1 - Mismo problema con Angular 4

Aquí igual. No usar Angular o React. Este es mi error de paquete web:

WARNING in ./~/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/data/jenkins/workspace/project/node_modules/moment/src/lib/locale'
./~/moment/src/lib/locale/locales.js 65:16-60
./~/moment/src/lib/locale/locale.js
./~/moment/src/moment.js
./script.js

Mismo problema con vuejs y webpack.

Lo mismo aquí con el paquete web, aunque el problema se desencadena por la zona horaria del momento. Cambiamos la dependencia de "moment": "^2.18.1" a "moment": "~2.18.1"

mismo problema cuando se actualiza a la versión 2.19.0
WARNING in ./~/[email protected]@moment/src/lib/locale/locales.js Module not found: Error: Can't resolve './locale' in '/Users/XXX/code/gitlab/web-editor/node_modules/[email protected]@moment/src/lib/locale' @ ./~/[email protected]@moment/src/lib/locale/locales.js 65:16-60 @ ./~/[email protected]@moment/src/lib/locale/locale.js @ ./~/[email protected]@moment/src/moment.js @ ./~/[email protected]@antd/lib/calendar/index.js @ ./~/[email protected]@antd/lib/index.js @ dll lib

Mismo problema aquí con 2.19.0

Mismo problema en esta versión 2.19.0

Esta versión (2.19.0 debe ser reparada)
por el 'momento' ahahah, instala la 2.18.1
"momento": "~2.18.1"

Mismo problema aquí 😢 Regresaremos a 2.18 hasta que esto se resuelva.

El mismo problema aqui...

reaccionar error del paquete web

WARNING in ./node_modules/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in 'blahblahblah/node_modules/moment/src/lib/locale'
 @ ./node_modules/moment/src/lib/locale/locales.js 65:16-60
 @ ./node_modules/moment/src/lib/locale/locale.js
 @ ./node_modules/moment/src/moment.js
 @ ./src/client/components/ArticlesGrid/index.js
 @ ./src/client/containers/StuffPage/index.js
 @ ./src/client/routes.jsx
 @ ./src/client/index.js
 @ multi (webpack)-dev-server/client?http://0.0.0.0:8050 webpack/hot/dev-server babel-polyfill ./src/client/index.js

@mymtw : como comunidad, no permitimos jurar en los formularios, por lo que su comentario se actualizó. Por favor, absténgase en el futuro.

Obtuve este después de actualizar a 2.19...

node_modules/webpack/lib/IgnorePlugin.js:20
                    (!contextRegExp || contextRegExp.test(result.context))) {
                                                     ^

TypeError: contextRegExp.test is not a function

Y usando ignorar el complemento para omitir locales en mi archivo de configuración de paquete web:

new webpack.IgnorePlugin(/^\.\/locale$/, [/moment$/])

Bloquear la versión del momento en package.json ayudará a:

"moment": "2.18.0"

Sin embargo, si sus dependencias extraen la última versión de moment (2.19.0), lo anterior no funcionará (ejecute find ./node_modules/*/node_modules -iname moment para verificar otras versiones de moment en su aplicación)

En su lugar, puede usar externos de paquetes web:

  • Agregue momento a la configuración de su paquete web externo:
+            externals: {
+                moment: 'moment',
+            },
  • Use el archivo moment.js de CDN; póngalo en su archivo index.html (o index.ejs):
    <script src="https://momentjs.com/downloads/moment.min.js"></script>

Rebajado a ~2.18.0 que evita esto por el momento.

Aquí hay un paso de reproducción que funciona para mí. Supongo que tiene create-react-app instalado globalmente:

> create-react-app my-app
> cd my-app
> # Prove the app it working correctly
> npm run start 
> npm install moment

Actualice src/app.js con algo como:

 import '.App.css';

+ import moment from 'moment'

class App extends Component {
 </p>
+<p>
+ Today is {moment().format()}
+</p>
 </div>

Entonces

> npm run start 

Espere que se cargue el sitio web.

Real, falla con un error: no se puede resolver el error './locale'.

Contexto adicional, funciona después de hacer

> npm install [email protected] 

Esto es interesante. Acabo de actualizar moment en mi propio código en el que trabajo para mi trabajo y comencé webpack. Por lo que puedo decir, tengo la última de todas las dependencias de paquetes web (hay varias y solo he comprobado algunas), y el momento 2.19.0, y todo está bien.

Probaré esta ruta de crear-reaccionar-aplicación a continuación.

¡Esta no fue una mañana muy feliz con este error!

Lo mismo ocurre con este error.

npm install --save [email protected]

Esto soluciona el problema por el momento. 2.19.0 me estaba dando el mismo error hace aproximadamente 2 horas.
Se degradó a la versión 2.18.1 y funcionó bien.

También podemos corroborar este escenario.

2.19.0 rompió nuestra compilación de producción :(. Volver a 2.18.1 parece estar funcionando bien.

Cerrando como un duplicado de #4216 - seguimiento allí.

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