Moment: Webpack - Dependencia crítica: la solicitud de una dependencia es una expresión con 2.25.0

Creado en 1 may. 2020  ·  35Comentarios  ·  Fuente: moment/moment

Esta mañana actualicé el momento de 2.24.0 a 2.25.0 y comencé a recibir esta advertencia de mi compilación de Webpack:
Critical dependency: the request of a dependency is an expression

Versiones que estoy usando:
trago - 4.0.2
paquete web - 4.43.0
babel - 7.9.6

No se produjeron otras actualizaciones en el medio. Solo moment.js se actualizó y apareció la advertencia.

Comentario más útil

Lo mismo aquí, bloquear la versión del paquete a 2.24.0 ayuda por ahora ...

Todos 35 comentarios

mismo problema

mismo problema
después de instalar el momento en la aplicación laravel vue.
WARNING in ./node_modules/moment/src/lib/locale/locales.js 78:12-82:13 Critical dependency: the request of a dependency is an expression @ ./node_modules/moment/src/lib/locale/locale.js @ ./node_modules/moment/src/moment.js @ ./resources/js/app.js @ multi ./resources/js/app.js ./resources/sass/app.scss

Lo mismo aquí, bloquear la versión del paquete a 2.24.0 ayuda por ahora ...

¡El mismo problema por aquí! ¡Crítico!

¡He tenido el mismo problema! Bloqueé el mío en 2.24.0 y arreglé mi compilación

Secundado

Aquí igual. 2.25.0 da este problema pero no 2.24.0. Cambios en 2092: 16-2096: 17 en moment.js es la raíz.

El mismo problema, pero extrañamente solo cuando se ejecuta como dev (este es un proyecto nuxt) Los problemas parecen estar en src/lib/locale/locales.js line 78 - 82,

Cambiando:
javascript
aliasedRequire (
(typeof __dirname! == undefined? __dirname: '.') +
'/ locale /' +
nombre
);
to: javascript
aliasedRequire ('../ locale /' + nombre);
`` ``
Me soluciona el problema

Lo obtengo tanto en compilaciones de desarrollo como de prod con mi configuración.

Lo mismo aquí, bloquear la versión del paquete a 2.24.0 ayuda por ahora ...

Sí, esa es la solución obvia, pero no es realmente una solución :-).

También recibo la misma advertencia y recibo los siguientes errores de consola, en un navegador web para aplicaciones angulares mientras llamo moment.format() .

ERROR TypeError: __WEBPACK_IMPORTED_MODULE_2_moment__ is not a function
(main.bundle.js:11539)
Show 102 more frames

aquí igual

Confirmado también

Espere un segundo, esto es una advertencia, no un error. ¿Todavía produce un paquete?

Con momento 2.25.0:

% ./node_modules/.bin/webpack
Hash: 42b60d02778538c038dc
Version: webpack 4.43.0
Time: 497ms
Built at: 05/01/2020 4:56:43 PM
    Asset      Size  Chunks             Chunk Names
bundle.js  72.2 KiB       0  [emitted]  main
Entrypoint main = bundle.js
[13] ./node_modules/moment/src/lib/units/month.js + 1 modules 9.92 KiB {0} [built]
     |    2 modules
[26] ./node_modules/moment/src/lib/create/valid.js + 1 modules 1.88 KiB {0} [built]
     |    2 modules
[36] ./node_modules/moment/src/lib/create/from-anything.js + 8 modules 25.1 KiB {0} [built]
     |    9 modules
[46] (webpack)/buildin/harmony-module.js 573 bytes {0} [built]
[47] ./node_modules/moment/src/lib/locale sync 160 bytes {0} [optional] [built]
[48] ./src/index.js + 54 modules 84.6 KiB {0} [built]
     | ./src/index.js 62 bytes [built]
     |     + 54 hidden modules
    + 43 hidden modules

WARNING in ./node_modules/moment/src/lib/locale/locales.js 78:12-82:13
Critical dependency: the request of a dependency is an expression
 @ ./node_modules/moment/src/lib/locale/locale.js
 @ ./node_modules/moment/src/moment.js
 @ ./src/index.js

WARNING in configuration
The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults for each environment.
You can also set it to 'none' to disable any default behavior. Learn more: https://webpack.js.org/configuration/mode/

Y funciona.

Con [email protected] :

% ./node_modules/.bin/webpack
Hash: c16dbd62d51ed42203b2
Version: webpack 4.43.0
Time: 559ms
Built at: 05/01/2020 4:58:27 PM
    Asset     Size  Chunks                    Chunk Names
bundle.js  263 KiB       0  [emitted]  [big]  main
Entrypoint main [big] = bundle.js
[128] ./src/index.js 62 bytes {0} [built]
[129] (webpack)/buildin/module.js 497 bytes {0} [built]
[130] ./node_modules/moment/locale sync ^\.\/.*$ 3 KiB {0} [optional] [built]
    + 128 hidden modules

WARNING in configuration
The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults for each environment.
You can also set it to 'none' to disable any default behavior. Learn more: https://webpack.js.org/configuration/mode/

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets: 
  bundle.js (263 KiB)

WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
Entrypoints:
  main (263 KiB)
      bundle.js


WARNING in webpack performance recommendations: 
You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.
For more info visit https://webpack.js.org/guides/code-splitting/

Y todavía funciona.

Espere un segundo, esto es una advertencia, no un error. ¿Todavía produce un paquete?

Si lo hace. Aún así, es molesto, incorrecto y hace que la salida de la compilación esté llena de rastros malos.

También veo esto, pero solo en compilaciones de producción a través de nuestro CI.

@jontybrook Estaba viendo el mismo comportamiento, pero después de destruir la carpeta node_modules, pude reproducir esto localmente.

El código con __dirname que estaba solucionando un problema para react-native tuvo que revertirse para que ustedes (usuarios del paquete web) puedan ver una mejor salida de consola.

Corregido en 2.25.1

Esto no tiene nada que ver con una mejor salida de la consola ... ¡sino menos que las compilaciones de ruptura de código probadas idealmente para MUCHAS MUCHAS personas!

Sin embargo, me alegra saber que se corrigió y se publicó hace unos minutos; pasamos las últimas horas investigando nuestro extremo tratando de encontrar la causa

Esto no tiene nada que ver con una mejor salida de la consola ... ¡sino menos que las compilaciones de ruptura de código probadas idealmente para MUCHAS MUCHAS personas!

Exactamente ! Advertir hoy es un posible error mañana.

Fue mucho peor que una advertencia ... si por casualidad estaba ejecutando moment-timezone que extrae dinámicamente la última versión del momento, ¡esto causó una ruptura completa del código!

Espere un segundo, esto es una advertencia, no un error. ¿Todavía produce un paquete?

Si solo producir un paquete fuera el único resultado deseado ...

El código con __dirname que estaba solucionando un problema para react-native tuvo que revertirse para que ustedes (usuarios del paquete web) puedan ver una mejor salida de consola.

Corregido en 2.25.1

¡¿Por qué el sarcasmo ?! La salida limpia es importante. En mi configuración he puesto estadísticas y métricas que son importantes para mí y llenarlo con cosas innecesarias hace que sea tedioso de leer y ralentiza mi trabajo como mínimo. Luego viene el hecho de que una advertencia es siempre algo que no se debe ignorar a largo plazo. Por último, pero en realidad primero, resulta ser realmente malo para algunas configuraciones, como informó

Me alegro de ver esto arreglado. Continuará con la 2.24.0 hasta una versión posterior o puede que la mantenga ... tomó demasiado tiempo descubrir por qué nuestra aplicación web se rompió esta mañana después de una implementación.

"Ustedes" usuarios de paquetes web ... también conocido como una gran parte de los desarrolladores de aplicaciones web. Actualmente no tenemos ningún dato adicional proveniente de nuestro proceso de paquete web, por lo que no quiero ver una mejor salida de la consola, solo quiero que funcione.

El código con __dirname que estaba solucionando un problema para react-native tuvo que revertirse para que ustedes (usuarios del paquete web) puedan ver una mejor salida de consola.

Corregido en 2.25.1

Dejando a un lado el sarcasmo, la v2.25.1 en realidad no soluciona nada (la advertencia Module not found sigue ahí). Por lo general, me abstengo de criticar a los colaboradores de código abierto que ofrecen su tiempo como voluntarios, pero no tenga una actitud hacia los usuarios que simplemente informan problemas. Y sí, las advertencias están ahí por una razón. Ignorarlos oscurece todo tipo de información y, por lo general, conduce a algo roto en el camino.

Este problema no debe cerrarse ... es un cambio radical para los usuarios de la zona horaria que usan el paquete web, no solo una cuestión de mostrar una advertencia (y que afecta a una cantidad enorme de personas)

el mismo problema
no arreglar 2.25.0
no arreglar 2.25.1
no arreglar 2.25.2

Quiero que vuelvas a la versión original.

Entorno de comprobación de funcionamiento
https://github.com/standard-software/partsjs/tree/v5.0.0
package.json

¡Chico, esto no está arreglado! ¿No podemos cerrar los defectos hasta que se resuelvan, especialmente cuando rompen compilaciones existentes como Webpack? @ichernev, por favor, vuelva a abrir esto ya que no está resuelto. Esto va a quebrar a muchas personas que confían en MomentJS y lo usan con Vanilla Webpack.

Hola, ¡BUMP !, esto también está rompiendo mi compilación, ¡no arreglado !.

Acabo de actualizar el momento con npm i moment y lo resolvió

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