Я отримую три попереджувальні повідомлення під час імпорту request
в проект веб-пакета без голови. Мінімальний приклад відтворення помилки доступний на GitHub (run npm install
and npm start
).
Critical dependency: the request of a dependency is an expression
Як я можу позбутися цього попередження?
Більше інформації:
Webpack намагається require
статично вирішувати дзвінки, щоб зробити мінімальний пакет. Коли бібліотека використовує змінні або вирази в вимагають виклику (наприклад, require('' + 'nodent')
в цих лініях в ajv
), Webpack не може вирішити їх статично і імпортує весь пакет.
Моє обгрунтування полягає в тому, що цей динамічний імпорт не бажаний у виробництві, і код краще зберігати без попереджень. Це означає, що я хочу будь-яке рішення, яке вирішує проблему. Наприклад:
- Налаштуйте веб-пакет вручну, щоб імпортувати необхідні бібліотеки та запобігти появі попереджень.
- Додавання
hack.js
файлу до мого проекту, який певним чином перекриває необхідні виклики. - Оновлення бібліотек.
ajv-5.0.1-beta.3
є виправлення, яке замовчує попередження. Однак, якщо я хочу використовувати його, мені доведеться почекати, поки він вийде, а потімhar-validator
іrequest
випустити наступні оновлення. Якщо є спосіб змуситиhar-validator
використовувати бета-версіюajv
, це вирішить мою проблему. - Інший