Я получаю три предупреждающих сообщения при импорте request
в базовый проект веб-пакета. Минимальный пример для воспроизведения ошибки доступен на GitHub (запустите npm install
и npm start
).
Critical dependency: the request of a dependency is an expression
Как я могу избавиться от этого предупреждения?
Дополнительная информация:
Webpack пытается статически разрешить require
вызовов, чтобы сделать минимальный пакет. Когда библиотека использует переменные или выражения в вызове require (например, require('' + 'nodent')
в эти строки из ajv
), Webpack не может разрешить их статически и импортирует весь пакет.
Мое объяснение заключается в том, что такой динамический импорт нежелателен в рабочей среде, и код лучше не содержать предупреждений. Это означает, что я хочу любое решение, которое решает проблему. Например.:
- Вручную настройте веб-пакет для импорта необходимых библиотек и предотвращения появления предупреждений.
- Добавление файла
hack.js
в мой проект, который каким-то образом переопределяет вызовы require. - Обновление моих библиотек.
ajv-5.0.1-beta.3
есть исправление, отключающее предупреждения. Однако, если я хочу использовать его, я должен ждать, пока он не будет выпущен, а затем, покаhar-validator
иrequest
не выпустят последующие обновления. Если есть способ заставитьhar-validator
использовать бета-версиюajv
, это решит мою проблему. - Другой
new webpack.IgnorePlugin(/async/, /ajv/)
, два из трех предупреждений исчезнут, но webpackCannot find module "../async"
. Любая идея о правильном магическом значении, чтобы заставить его работать? - person Jodiug   schedule 21.03.2017