尝试将现有React项目从react-scripts@4升级到@5.0.0时,导入已传递的MDX源失败。
/* eslint import/no-webpack-loader-syntax: off */
import AboutMDX from "!babel-loader!mdx-loader!./About.mdx"
AboutMDX
没有接收MDXComponent,但现在从react-scripts 5开始,它以一个字符串结束,该字符串是已转换的javascript源代码文件的路径名。如何修复此行为更改以正确导入MDXComponent?
1条答案
按热度按时间0lvr5msh1#
这是一个od(d)Ysee因为整个MDX2 + CRA5 + remark/reype生态系统在我的经验中很容易断裂,而MDX文档将CRACO7与CRA5一起使用,MDX项目在被友好地询问时将矛头指向了CRACO,并且在帮助我克服ES模块和CSJ障碍以便最终使这些部分工作方面没有帮助。(目前)我不知道这个设置实际上有多稳健。
package.json
脚本中调用craco
命令而不是react
。src/index.d.ts
中有declare module '*.mdx {...}'
,那么现在完全删除它,因为它会与MDXv2加载程序附带的内容冲突。*.mdx
导入中删除!babel-loader!mdx-loader!
。2不要*****使用!@mdx-js/loader!
等,因为下面的webpack配置将负责预处理。craco.config.js
,如下所示;这是一个更详细的配置,显示了如何实际引入ES模块,CRACO 5在其配置中仍然不支持ESM,但需要通过延迟配置设置障碍进行动态导入: