Это проблема с Webpack v4, когда правило:
{
парсер: {requireEnsure: false},
}
имея этот вывод:
ПРЕДУПРЕЖДЕНИЕ в ./node_modules/pdfjs-dist/build/pdf.js 7873: 6-13
Критическая зависимость: функция require используется таким образом, что зависимости не могут быть извлечены статически
В чем преимущество включения этого правила (поскольку я не думаю, что мы включаем его по умолчанию) и в какой строке оно идет не так? Это в исходном коде PDF.js или в сгенерированном коде пакета? Пожалуйста, предоставьте немного больше информации и содержание строки 7873.
Я не думаю, что настройка Webpack совместима с кодом fakeWorkerFilesLoader
который необходим в некоторых средах в качестве запасного варианта, когда пользователь неправильно настроил рабочих, поэтому эта проблема, вероятно, недопустима из точки PDF.js Посмотреть.
Закрытие, так как я также не думаю, что мы действительно можем здесь что-то сделать.
В чем преимущество включения этого правила
Похоже, что create-react-app
установил requireEnsure: false
потому что это не стандартная языковая функция .
Это приводит к любому проекту create-react-app
который использует pdf.js для отображения предупреждения;
./node_modules/pdfjs-dist/build/pdf.js
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
Я недостаточно хорошо понимаю это, чтобы знать, есть ли способ включить резервный код, который не вызывает предупреждение, но, поскольку кажется разумным включить резервный вариант, я открою проблему с create-react-app
репо тоже.
Я не уверен, но похоже, что возможным решением для резервного кода было бы опубликовать PDF.js как модули es6 и использовать что-то вроде накопительного пакета для отдельной отправки резервного кода https://github.com/mozilla/pdf. js / issues / 10317
У меня проблемы с введением кода fakeWorkerFilesLoader
.
это необходимо в некоторых средах в качестве запасного варианта, когда пользователь не настраивал рабочих
@Snuffleupagus, не могли бы вы немного рассказать об этом? Когда сработает резервный вариант и как в этом случае загружается рабочий? Какие среды вы имеете в виду? Можно ли было бы убрать откат в пользу ошибки?
У меня точная проблема, получите точную ошибку из плагина, основанного на pdf.js (vue-pdf).
Я получаю следующую ошибку:
ПРЕДУПРЕЖДЕНИЕ в ./node_modules/pdfjs-dist/build/pdf.js 9818: 60-67
Критическая зависимость: функция require используется таким образом, чтобы зависимости не могли быть извлечены статически.
Я не уверен, но похоже, что возможным решением для резервного кода было бы опубликовать PDF.js как модули es6 и использовать что-то вроде свертки, чтобы отправить резервный код отдельно # 10317
Это было бы отлично. Это предупреждение очень раздражает в любом проекте CRA.
Это никогда не будет исправлено @timvandermeij? Просто интересно, ждать мне или переезжать.
Неясно, действительно ли это то, что нужно исправить на стороне PDF.js, и если да, то каковы альтернативы для require.ensure
. Мы не можем предоставить поддержку для «create-response-app», поэтому, вероятно, лучше всего зарегистрировать проблему в их трекере.
Если https://github.com/mozilla/pdf.js/issues/10253#issuecomment -463377308 устранит проблему, то это уже отслеживается в отдельной проблеме.
@timvandermeij Привет, это случилось со мной в настройке Vue.js, и я перепробовал все плагины, которые смог найти. Все они были основаны на pdf.js, и я получил ту же ошибку:
WARNING in ./node_modules/pdfjs-dist/build/pdf.js 9818:60-67
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted.
Для временного исправления переопределите правило сценариев реакции .
Самый полезный комментарий
Похоже, что
create-react-app
установилrequireEnsure: false
потому что это не стандартная языковая функция .Это приводит к любому проекту
create-react-app
который использует pdf.js для отображения предупреждения;Я недостаточно хорошо понимаю это, чтобы знать, есть ли способ включить резервный код, который не вызывает предупреждение, но, поскольку кажется разумным включить резервный вариант, я открою проблему с
create-react-app
репо тоже.