React Native(新版本):Expo环境下无法解析模块问题求助
嘿,作为刚接触React Native + Expo的新手,遇到这种模块找不到的问题太正常了!我之前踩过类似的坑,给你几个一步步来的解决办法:
1. 先核对模块名称是否拼写正确
你报错里的模块是react-renderif,先仔细想想是不是拼写错了?比如很多这类模块的命名是带连字符的react-render-if。可以在终端里跑个命令确认:
npm view react-renderif
如果返回“404 Not Found”,那肯定是名称错了,换成正确的名称重新安装就行。
2. 确认模块真的安装成功
去你的项目根目录下的node_modules文件夹里找有没有react-renderif这个文件夹,或者打开package.json看看dependencies里有没有它的条目。如果都没有,重新执行安装命令,记得加上--save把它加到依赖里:
npm install react-renderif --save
3. 清除Expo缓存,重启项目
有时候Expo的缓存会搞鬼,明明装了模块却识别不到。你可以:
- 在Expo XDE里点击"Restart"按钮,或者直接关掉再重新打开项目
- 用命令行的话,跑这个命令清除缓存并重启:
expo r -c
4. 检查模块是否兼容Expo Managed Workflow
如果上面的步骤都没用,那要注意:有些模块是需要链接原生代码的,而Expo的Managed模式(就是你用XDE开发的这种)不支持这类模块。你可以去这个模块的npm主页看看文档,有没有说支持Expo。如果是原生模块,要么换一个纯JS的替代模块,要么考虑eject到Bare Workflow(不过新手不推荐轻易eject)。
另外,你遇到的错误原文是:
Unable to resolve module react-renderif from /Users/my_name/Desktop/ExpoProjekte/test/App.js : Module does not exist in the module map or in these di...
大概率是前面1-3步里的某一步出问题,先从检查拼写和安装开始排查吧!
内容的提问来源于stack exchange,提问作者Paul

