Otrzymuję trzy komunikaty ostrzegawcze podczas importowania requestw projekcie pakietu webowego w wersji szkieletowej. Minimalny przykład odtworzenia błędu jest dostępny na GitHub (uruchom npm installi 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ć requirepołą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.jspliku do mojego projektu, który w jakiś sposób zastępuje wywołania wymagania. - Aktualizuję moje biblioteki.
ajv-5.0.1-beta.3ma poprawkę, która wycisza ostrzeżenia. Jeśli jednak chcę z niego korzystać, muszę poczekać, aż zostanie wydany, a następnie dohar-validatorirequestwydać kolejne aktualizacje. Jeśli istnieje sposób na wymuszeniehar-validatorkorzystania z wersji betaajv, rozwiązałoby to mój problem. - Inny