Moment: Webpack - Dépendance critique : la demande d'une dépendance est une expression avec 2.25.0

Créé le 1 mai 2020  ·  35Commentaires  ·  Source: moment/moment

Ce matin, j'ai mis à jour Moment de 2.24.0 à 2.25.0 et j'ai commencé à recevoir cet avertissement de ma version Webpack :
Critical dependency: the request of a dependency is an expression

Versions que j'utilise :
gorgée - 4.0.2
Webpack - 4.43.0
babel - 7.9.6

Aucune autre mise à jour n'a eu lieu entre les deux. Seul moment.js a été mis à jour et l'avertissement est apparu.

Commentaire le plus utile

Idem ici, verrouiller la version du package à 2.24.0 aide pour l'instant...

Tous les 35 commentaires

même problème

même problème
après l'installation du moment dans l'application 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

Idem ici, verrouiller la version du package à 2.24.0 aide pour l'instant...

Même problème ici ! Critique!

J'ai eu le même problème! J'ai verrouillé le mien à 2.24.0 et corrigé ma version

Détaché

Pareil ici. 2.25.0 donne ce problème mais pas 2.24.0. Les changements à 2092:16-2096:17 dans moment.js sont la racine.

Même problème, mais étrangement uniquement lors de l'exécution en tant que dev (il s'agit d'un projet nuxt) Les problèmes semblent être dans src/lib/locale/locales.js ligne 78 - 82,

En changeant:
```javascript
aliasRequire(
(typeof __dirname !== undefined ? __dirname : '.') +
'/localité/' +
Nom
);
to: javascript
aliasedRequire('../locale/' + nom);
````
Corrige le problème pour moi

Je l'obtiens à la fois sur les versions dev et prod avec ma configuration.

Idem ici, verrouiller la version du package à 2.24.0 aide pour l'instant...

Oui, c'est la solution de contournement évidente, mais pas vraiment une solution :-).

Je reçois également le même avertissement et reçois les erreurs de console suivantes, dans un navigateur Web pour une application angulaire lors de l'appel de moment.format() .

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

pareil ici

Confirmé aussi

Attendez une seconde - ceci est un avertissement, pas une erreur. Produit-il toujours un paquet ?

Avec l'instant 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/

Et il fonctionne.

Avec [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/

Et ça marche toujours.

Attendez une seconde - ceci est un avertissement, pas une erreur. Produit-il toujours un paquet ?

Oui. Toujours - ennuyeux, faux et rend la sortie de construction pleine de traces merdiques.

Je vois aussi cela, mais uniquement dans les versions de production via notre CI.

@jontybrook Je voyais le même comportement mais après avoir détruit le dossier node_modules, j'ai pu le reproduire localement.

Le code avec __dirname qui résolvait un problème pour react-native a dû être inversé afin que vous (utilisateurs de webpack) puissiez regarder une meilleure sortie de console.

Corrigé en 2.25.1

Cela n'a rien à voir avec une meilleure sortie de la console... mais plutôt moins que des versions de rupture de code idéalement testées pour BEAUCOUP de personnes !

Heureux d'apprendre que cela a été corrigé et publié il y a quelques minutes - j'ai passé les dernières heures à creuser de notre côté pour essayer de trouver la cause

Cela n'a rien à voir avec une meilleure sortie de la console... mais plutôt moins que des versions de rupture de code idéalement testées pour BEAUCOUP de personnes !

Exactement ! L'avertissement d'aujourd'hui est une erreur potentielle demain.

C'était bien pire qu'un avertissement... si par hasard vous exécutiez moment-timezone qui récupère dynamiquement la dernière version de moment, cela provoquait une rupture complète du code !

Attendez une seconde - ceci est un avertissement, pas une erreur. Produit-il toujours un paquet ?

Si seulement produire un bundle était le seul résultat souhaité...

Le code avec __dirname qui résolvait un problème pour react-native a dû être inversé afin que vous (utilisateurs de webpack) puissiez regarder une meilleure sortie de console.

Corrigé en 2.25.1

Pourquoi le sarcasme ?! Une sortie propre est importante. Dans ma configuration, j'ai mis des statistiques et des mesures qui sont importantes pour moi et l'inonder de choses inutiles rend la lecture fastidieuse et ralentit à tout le moins mon travail. Vient ensuite le fait qu'un avertissement est toujours quelque chose qui ne doit pas être ignoré à long terme. Dernier point, mais en fait le premier - il s'avère que cela s'avère vraiment perturbant pour certaines configurations, comme l' @agrohs . Alors... le sarcasme n'est pas bien placé ici je crois. Merci de l'avoir corrigé, cependant.

Content de voir ça corrigé. Continuera avec la version 2.24.0 jusqu'à une version ultérieure ou pourrait la conserver... a pris beaucoup trop de temps pour comprendre pourquoi notre application Web a été interrompue ce matin après un déploiement.

"Vous" utilisateurs de webpacks... c'est-à-dire une grande partie des développeurs d'applications Web. Nous n'avons actuellement aucune donnée supplémentaire provenant de notre processus de pack Web, donc je ne veux pas regarder une meilleure sortie de console, je veux juste que cela fonctionne.

Causant toujours des problèmes : https://github.com/moment/moment/issues/5472

Le code avec __dirname qui résolvait un problème pour react-native a dû être inversé afin que vous (utilisateurs de webpack) puissiez regarder une meilleure sortie de console.

Corrigé en 2.25.1

Mis à part le sarcasme, la v2.25.1 ne résout rien (l'avertissement Module not found est toujours là). Je m'abstiens généralement de critiquer les contributeurs open source qui donnent de leur temps, mais s'il vous plaît, n'ayez pas une attitude envers les utilisateurs qui signalent simplement des problèmes. Et oui, les avertissements sont là pour une raison. Les ignorer obscurcit toutes sortes d'autres informations et conduit généralement à quelque chose de cassé sur la route.

Ce problème ne doit pas être clos... c'est un changement décisif pour les utilisateurs de fuseau horaire qui utilisent webpack, pas seulement un problème d'affichage d'un avertissement (et affectant un très grand nombre de personnes)

même problème
pas corriger 2.25.0
pas corriger 2.25.1
pas corriger 2.25.2

Je veux que vous reveniez à la version originale.

Environnement de contrôle de fonctionnement
https://github.com/standard-software/partsjs/tree/v5.0.0
package.json

Mec ce n'est pas réglé ! Ne pouvons-nous pas fermer les défauts tant qu'ils ne sont pas résolus, en particulier lorsqu'ils cassent des versions existantes telles que Webpack ? ! @ichernev s'il vous plaît

Salut, BUMP !, cela casse aussi ma construction, pas corrigé !.

Je viens de mettre à jour moment avec npm i moment et cela l'a résolu

Cette page vous a été utile?
0 / 5 - 0 notes