运行React App时找不到模块 '@babel/plugin-transform-react-jsx-source'

30
我刚使用create-react-app aquastars创建了React应用程序,然后使用yarn run eject弹出依赖项,但运行应用程序时我收到以下错误信息:

无法找到模块'@babel/plugin-transform-react-jsx-source'

我什么都没做!我需要做什么才能使它正常运行?任何帮助将不胜感激。

3
npm install ? - connexo
谢谢connexo,我正在运行它。 - AltBrian
同样的问题,你是怎么解决的? - Manspof
如果我的答案(https://dev59.com/7VQJ5IYBdhLWcg3wr363#54258361)对您有用,请告诉我。如果是这样,希望您能将其标记为已接受 :) - Fernando Rojo
7个回答

44

@xiaobo的解决方案对我来说实际上是不足够的。在升级到expo v32之后,我花了一段时间才弄清楚这一点,所以如果其他人遇到相同的问题,这是我所做的。 (来源:expo论坛

如果你的代码库根目录下有一个.babelrc文件,请将其改名为.babelrc-old之类的名称,以免被使用。

在你的代码库根目录下添加一个名为babel.config.js的文件.

在 babel.config.js 文件中添加以下内容:

module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
  };
};

一切准备就绪!


2
欢迎来到Stack Overflow!你的回答看起来不错,但请编辑你的帖子,删除对“上面的答案”的引用,因为答案顺序可能会改变。 - A Jar of Clay
嘿,明白了,非常感谢你的提示!我刚刚编辑了它,链接到了实际答案。 - Fernando Rojo
3
谢谢@Nando,你救了我的一天! - Fl4v
@Fl4v 很高兴听到这个消息!:) - Fernando Rojo
1
我刚刚将我的应用程序中的Expo SDK从v32更新到v35,遇到了这个问题。这个解决方案也为我解决了问题。谢谢! - Josh Buchea
很高兴听到这个消息,@JoshBuchea。 - Fernando Rojo

27

当你执行 npm run eject 后:

  1. cd /your/project/path(忽略)
  2. rm -rf node_modules (删除node_modules文件夹)
  3. npm installyarn install(执行安装依赖命令)
  4. 运行之前失败的脚本(在你的情况下很可能是:yarn startnpm start)。

10
为什么第三步不用 yarn 呢?我尝试使用 yarn 进行安装,结果成功了。 - ypahalajani
1
它是相同的命令 https://classic.yarnpkg.com/en/docs/cli/#toc-default-command - kuyabiye

8

删除整个node_modules文件夹,然后重新运行yarn即可使其正常工作。 rm -R node_modules/ rm yarn.lock yarn install


3
删除 yarn.lock 不是明智的选择。 - graup
我同意@graup的观点,没有必要删除yarn.lock文件,它是唯一可以尝试在不同机器/环境之间保持所有依赖项相同的东西。 - Joshua Pinter

2
在我的情况下,通过在Reactjs上安装"@babel",@babel/plugin-transform-react-jsx来解决了这个问题。
1:yarn add @babel/plugin-transform-react-jsx
2:yarn start

0

尝试将 '@babel/plugin-transform-react-jsx-source' 替换为 '@babel/transform-react-jsx-source'


替换它在哪里?(算了,我找到了...根目录中的.babelrc文件,这是一个隐藏文件) - Dave Doga Oz

0
在我的Windows 10系统上,这个错误是由于切换到git-bash(作为npm的默认shell来运行package.json中的任何脚本)引起的。 我之前在另一个项目中执行了npm config set script-shell "C:\Program Files\Git\bin\bash.exe",以便能够运行包含bash语法的任何脚本。 我可以通过npm config delete script-shell来恢复它,然后错误就消失了。 更多信息

-1

只需更改存储库根目录下的“.babelrc”文件名,就可以消除这个错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接