Otrzymuję trzy komunikaty ostrzegawcze podczas importowania request
w projekcie pakietu webowego w wersji szkieletowej. Minimalny przykład odtworzenia błędu jest dostępny na GitHub (uruchom npm install
i npm start
).
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łączenia statycznie, aby utworzyć minimalny pakiet. Kiedy biblioteka wykorzystuje zmienne lub wyrażenia w sposób wymaga połączenia (takie jak require('' + 'nodent')
w tych liniach o ajv
) WebPACK nie można rozwiązać je statycznie i importu cały pakiet.
Moje uzasadnienie jest takie, że ten dynamiczny import nie jest pożądany w produkcji, a kod powinien być chroniony przed ostrzeżeniami. Oznacza to, że chcę dowolnego rozwiązania, które rozwiązuje problem. Na przykład:
- Ręcznie skonfiguruj pakiet internetowy, aby zaimportować wymagane biblioteki i zapobiec wystąpieniu ostrzeżeń.
- Dodanie
hack.js
pliku do mojego projektu, który w jakiś sposób zastępuje wywołania wymagania. - Aktualizuję moje biblioteki.
ajv-5.0.1-beta.3
ma poprawkę, która wycisza ostrzeżenia. Jeśli jednak chcę z niego korzystać, muszę poczekać, aż zostanie wydany, a następnie dohar-validator
irequest
wydać kolejne aktualizacje. Jeśli istnieje sposób na wymuszeniehar-validator
korzystania z wersji betaajv
, rozwiązałoby to mój problem. - Inny