Je reçois trois messages d'avertissement lors de l'importation request
dans un projet barebone webpack. Un exemple minimal pour reproduire le bug est disponible sur GitHub (courir npm install
y npm start
).
Critical dependency: the request of a dependency is an expression
Comment puis-je me débarrasser de cet avertissement ?
Plus d'informations :
Webpack essaie de résoudre require
de façon statique pour créer un ensemble minimal. Lorsqu'une bibliothèque utilise des variables ou des expressions dans un appel require (tel que require('' + 'nodent')
sur ces lignes de ajv
), Webpack ne peut pas les résoudre de manière statique et importe le paquet entier.
Mon raisonnement est que cette importation dynamique n'est pas souhaitable en production, et qu'il est préférable de garder le code sans avertissement. Cela signifie que je veux toute solution qui résout le problème. Par exemple :
- Configurez manuellement webpack pour importer les bibliothèques requises et empêcher les avertissements de se produire.
- Ajout d'un
hack.js
à mon projet qui remplace les appels require d'une certaine manière. - Mise à jour de mes bibliothèques.
ajv-5.0.1-beta.3
a un correctif qui fait taire les avertissements. Cependant, si je veux l'utiliser, je dois attendre qu'il soit publié, et ensuite jusqu'à ce qu'il ne soit plus disponible.har-validator
yrequest
publier des mises à jour ultérieures. S'il y a un moyen de forcerhar-validator
pour utiliser la version bêta deajv
cela résoudrait mon problème. - Autre
0 votes
1. github.com/epoberezkin/ajv/issues/117#issuecomment-198328830 2. Je ne pense pas que ça va marcher 3. Vous devrez attendre un peu.
1 votes
@esp : ce commentaire github semble être ce que je cherche, mais il ne fait pas taire les avertissements. Si je le change en
new webpack.IgnorePlugin(/async/, /ajv/)
deux avertissements sur trois ont disparu mais webpackCannot find module "../async"
. Une idée de la valeur magique appropriée pour que cela fonctionne ?1 votes
Le lien vers l'exemple de code github est cassé. Veuillez insérer le code directement dans la question.