Я получаю три предупреждающих сообщения при импорте запроса в проект barebone webpack. Минимальный пример воспроизведения ошибки доступен на GitHub (запустите npm install и npm start).

Критическая зависимость: запрос зависимости является выражением

Как мне избавиться от этого предупреждения?


Дополнительная информация:

Webpack пытается разрешить вызовы require статически для создания минимального пакета. Когда библиотека использует переменные или выражения в вызове require (например, require ('' + 'nodent') in эти строки of ajv), Webpack не может разрешить их статически и импортировать весь пакет.

Мое объяснение состоит в том, что этот динамический импорт нежелателен в производственной среде, а код лучше хранить без предупреждений. Это означает, что мне нужно любое решение, которое разрешит проблему. Например: * 100002*

  1. Вручную настройте webpack для импорта необходимых библиотек и предотвращения появления предупреждений.
  2. Добавление в мой проект файла hack.js, который каким-то образом переопределяет требуемые вызовы.
  3. Обновление моих библиотек.ajv-5.0.1-beta.3 содержит исправление, при котором предупреждения не отображаются. Однако, если я хочу его использовать, мне придется подождать, пока он не будет выпущен, а затем до тех пор, пока har-validator и request не выпустят последующие обновления. Если есть способ заставить har-validator использовать бета-версию ajv, это решит мою проблему.
  4. Другое

Jodiug

Ответов: 4

Ответы (4)

Решено с помощью npm install request@2.79.0 --save

По мнению авторов ajv, проблема, скорее всего, будет решена в последней версии request через несколько недель.

Замените это

new webpack.ContextReplacementPlugin(
        /angular(\\|\/)core(\\|\/)@angular/,
        helpers.root('./src'), // location of your src
        {} // a map of your routes
    ),

с этим -

new webpack.ContextReplacementPlugin( /(.+)?angular(\\|\/)core(.+)?/, root('./src'), {} )

Это предупреждение может быть связано с инъекциями пакетов в (зависимости или devDependencies).

Если проблема внезапно возникла, проверьте последнюю модификацию в вашем package.json.

Рассмотрите возможность удаления package-lock.json, если вы планируете перезапустить npm install.

Я получил это в Angular, когда случайно импортировал EventEmitter из транспортира. Я обвиняю свою IDE в том, что она даже предлагает это!

Должен быть импортирован из ядра:

import { EventEmitter } from '@angular/core';

2022 WebDevInsider