Ich erhalte drei Warnmeldungen beim Import von request
in ein Webpack-Projekt von barebone. Ein minimales Beispiel, um den Fehler zu reproduzieren, ist unter GitHub (Lauf npm install
und npm start
) verfügbar.Webpack - Kritische Abhängigkeit: Die Anforderung einer Abhängigkeit ist ein Ausdruck
Critical dependency: the request of a dependency is an expression
Wie kann ich diese Warnung loswerden?
Weitere Informationen:
Webpack versucht require
Anrufe zu lösen statisch ein minimales Bündel zu machen. Wenn eine Bibliothek Variablen in einem Require-Aufruf verwendet (z. B. these lines in ajv
), kann Webpack sie nicht statisch auflösen und das gesamte Paket importieren.
Mein Grund ist, dass dieser dynamische Import in der Produktion nicht wünschenswert ist, und Code wird am besten warntfrei gehalten. Das heißt, ich möchte eine Lösung, die das Problem löst. Zum Beispiel:
- Manuelles Konfigurieren von Webpack, um die erforderlichen Bibliotheken zu importieren und zu verhindern, dass Warnungen auftreten.
- Hinzufügen einer
hack.js
Datei zu meinem Projekt, die die Anforderungen in irgendeiner Weise überschreibt. - Aktualisieren meiner Bibliotheken.
ajv-5.0.1-beta.3
hat einen Fix, der die Warnungen zum Schweigen bringt. Allerdings, wenn ich es verwenden möchte, muss ich warten, bis es freigegeben wird, und dann bishar-validator
undrequest
spätere Updates freigeben. Wenn es eine Möglichkeit gibt,har-validator
zu zwingen, die Betaversion vonajv
zu verwenden, würde das mein Problem lösen. - Andere
1. https://github.com/epoberezkin/ajv/issues/117#issuecomment-198328830 2. Ich glaube nicht, es wird funktionieren 3. Sie müssen etwas warten. – esp
@esp: Dieser GitHub-Kommentar scheint das zu sein, wonach ich suche, aber die Warnungen werden nicht stummgeschaltet. Wenn ich es in 'new webpack.IgnorePlugin (/ async /,/ajv /)' ändere, sind zwei von drei Warnungen weg, aber webpack 'Kann das Modul" ../ async "nicht finden. Irgendeine Idee über den richtigen magischen Wert, damit es funktioniert? – Jodiug