Миграция CRA на Webpack 5

Я пытаюсь перенести извлеченное приложение create-response-app на Webpack 5 и сталкиваюсь с этой ошибкой:

Failed to compile.

The "path" argument must be of type string. Received undefined

error Command failed with exit code 1.

Я думаю, что ошибка исходит из output.pathкоторый по умолчанию из CRA не определен в разработке, я попытался установить для него пустую строку - или абсолютный путь, и он не разрешился. Мне удалось успешно заставить Webpack 5 работать с приложением, отличным от cra, оставив путь как undefined, поэтому я думаю, что это связано с конфигурацией CRA. Также я безуспешно следовал этому руководству https://webpack.js.org/migrate/5/

Песочница кода: https://codesandbox.io/s/musing-buck-shu04

Ценю любую помощь!

1 ответ

У меня такая же проблема. Эта ошибка возникает из webpack-manifest-plugin. Webpack 5 в настоящее время не поддерживается, но разработчики планируют добавить поддержку. Таким образом, вы можете изменить несколько строк в default.config.js output раздел из:

 output: {
   // The build folder.
   path: isEnvProduction ? paths.appBuild : undefined,
   // blah blah blah
 }

кому:

 output: {
   // The build folder.
   path: paths.appBuild,
   // blah blah blah
 }

ошибка The "path" argument must be of type string. Received undefinedисчезает. Но это все еще не работает для меня. У меня бесконечная загрузка в браузере. Я должен отладить его более внимательно и обновить ответ позже. Итак, я попытался удалить webpack-manifest-plugin из моей конфигурации, но он все еще не работает.

Другие вопросы по тегам