将 CRA 迁移到 Webpack 5

Dmi*_*riy 3 webpack create-react-app webpack-5

我正在尝试将弹出的 create-react-app 迁移到 Webpack 5 并遇到此错误:

Failed to compile.

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

error Command failed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

我认为错误来自output.path于默认情况下 CRA 在开发中未定义,我尝试将其设置为空字符串 - 或绝对路径,但它无法解析。我已经能够成功地让 Webpack 5 在非 cra 应用程序上工作,并将路径保留为未定义,所以我认为它与 CRA 配置有关。我也遵循了本指南,但没有成功https://webpack.js.org/migrate/5/

代码沙箱:https://codesandbox.io/s/musing-buck-shu04

感谢任何帮助!

小智 5

我面临着同样的问题。此错误是从 引发的webpack-manifest-plugin。目前不支持Webpack 5 ,但维护者计划添加支持。default.config.js output因此,您可以更改部分中的几行:

 output: {
   // The build folder.
   path: isEnvProduction ? paths.appBuild : undefined,
   // blah blah blah
 }
Run Code Online (Sandbox Code Playgroud)

到:

 output: {
   // The build folder.
   path: paths.appBuild,
   // blah blah blah
 }
Run Code Online (Sandbox Code Playgroud)

错误The "path" argument must be of type string. Received undefined消失。但它仍然不适合我。我在浏览器中不断加载。我应该更仔细地调试它并稍后更新答案。因此,我尝试webpack-manifest-plugin从我的配置中删除,但它仍然不起作用。