【发布时间】:2022-09-23 12:12:33
【问题描述】:
我在我的反应应用程序中将 Material UI 从 v4 升级到 v5。我正在运行反应版本 17.0.2。我第一次尝试升级到 v5,我使用了 codemod,但我遇到了太多无法解释的错误,所以我重新排列了我的应用程序并安装了新的 v5 包。下面是我的 package.json 文件中新旧材质 ui 包的列表。
\"@emotion/react\": \"^11.7.1\",
\"@emotion/styled\": \"^11.6.0\",
\"@material-ui/core\": \"^4.12.3\",
\"@material-ui/icons\": \"4.9.1\",
\"@material-ui/lab\": \"^4.0.0-alpha.60\",
\"@material-ui/utils\": \"^4.11.2\",
\"@mui/icons-material\": \"^5.4.1\",
\"@mui/lab\": \"^5.0.0-alpha.68\",
\"@mui/material\": \"^5.4.1\",
\"@mui/styles\": \"^5.4.1\",
我想逐个模块转换应用程序模块,以便我可以在问题发生时发现并修复它们。在我的第一个模块中进行更改后,我收到以下错误消息:
导出默认通用;
SyntaxError: 意外的令牌 \'export\'
问题:
- 是否应该可以在迁移过程中同时运行这两个版本的材料 UI,还是只能运行其中之一?
- 如果可以同时运行这两个版本,是什么导致了这个错误?
- 我是否需要对 Webpack 或其他任何内容进行更改才能进行迁移?
- 欢迎任何关于迁移的建议。我查看了文档,不幸的是进行了更改,因为它们表明我处于一种无法解决问题的困境中。
-
你看过官方的迁移指南吗:mui.com/guides/migration-v4
-
我做到了。我尝试更新一个文件夹,然后进行测试,得到上面指出的错误。你知道是否可以为一个文件夹运行 codemod,然后同时运行版本 4 和 5 进行测试?来自 Doc:运行 codemods 我们准备了这些 codemods 来简化您的迁移体验。 preset-safe 此 codemod 包含迁移所需的大部分转换器。 (这个 codemod 应该每个文件夹只应用一次) npx @mui/codemod v5.0.0/preset-safe <path> 如果你想一个一个运行转换器,请查看 preset-safe codemod 了解更多详细信息。
标签: reactjs material-ui migration upgrade