Otrzymuję trzy ostrzeżenia podczas importowania request
w projekcie webowego barebone. Minimalny przykład odtworzenia błędu jest dostępny pod adresem GitHub (uruchom npm install
i npm start
).Webpack - zależność krytyczna: żądanie zależności jest wyrażeniem
Critical dependency: the request of a dependency is an expression
Jak mogę pozbyć się tego ostrzeżenia?
Więcej informacji:
WebPACK próbuje rozwiązać require
połączeń statycznie, aby minimalny pakiet. Gdy biblioteka używa zmiennych w wywołaniu wymagającym (takim jak these lines w ajv
), Webpack nie może ich statycznie rozwiązać i zaimportować cały pakiet.
Moje uzasadnienie polega na tym, że ten dynamiczny import nie jest pożądany w produkcji, a kod najlepiej jest zachować bez ostrzeżenia. Oznacza to, że chcę rozwiązania, które rozwiąże problem. Np .:
- Ręcznie skonfiguruj pakiet sieci Web, aby zaimportować wymagane biblioteki i zapobiec występowaniu ostrzeżeń.
- Dodanie do mojego projektu pliku
hack.js
, który w pewien sposób przesłania wymagane połączenia. - Uaktualnianie moich bibliotek.
ajv-5.0.1-beta.3
ma poprawkę, która wycisza ostrzeżenia. Jednak jeśli chcę z niego korzystać, muszę poczekać, aż zostanie zwolniony, a następnie dohar-validator
irequest
wydać kolejne aktualizacje. Jeśli istnieje sposób wymuszenia nahar-validator
używania wersji betaajv
, rozwiąże to mój problem. - Inne
1. https://github.com/epoberezkin/ajv/issues/117#issuecomment-198328830 2. Nie sądzę to zadziała 3. będziesz musiał trochę poczekać. – esp
@esp: ten komentarz githuba wydaje się być tym, czego szukam, ale nie milknie w ostrzeżeniach. Jeśli zmienię go na 'new webpack.IgnorePlugin (/ async /,/ajv /)', dwa z trzech ostrzeżeń zniknęły, ale pakiet sieci Web 'Nie można znaleźć modułu" ../ async "'. Masz pojęcie o odpowiedniej magicznej wartości, żeby to zadziałało? – Jodiug