我创建了一个本机模块,并创建了另一个项目以在本地对其进行测试。
这是我的步骤:
cd <Testing project>
npm install ../<Module project>
react-native link <module name>
react-native run-android
然后我得到以下错误:
error: bundling failed: Error: Unable to resolve module `react-native-helloworld` from `G:\Test\App.js`: Module `react-native-helloworld` does not exist in the Haste module map
This might be related to https://github.com/facebook/react-native/issues/4968
To resolve try the following:
1. Clear watchman watches: `watchman watch-del-all`.
2. Delete the `node_modules` folder: `rm -rf node_modules && npm install`.
3. Reset Metro Bundler cache: `rm -rf /tmp/metro-bundler-cache-*` or `npm start -- --reset-cache`.
4. Remove haste cache: `rm -rf /tmp/haste-map-react-native-packager-*`.
我已经在StackOverflow上搜索了此问题,但是没有可行的解决方案。建议的解决方案“ 清除缓存并重置所有内容”无法正常工作。
但是,如果我将其发布到https://www.npmjs.com/,然后通过npm install <module name>
安装,该模块就可以工作。
唯一的区别是安装方式。
答案 0 :(得分:0)
我也遇到类似的错误,抱怨它无法从所寻找的位置找到“路径”。最后我发现这个问题是完全不相关的。以下自动导入被意外添加到了我的代码中(可能是当我使用'textTransform'创建样式时)
import { transform } from "@babel/core";
一旦我注意到并删除了它,该项目就可以构建了。检查代码中的最新更改以查看是否添加了类似内容可能会有所帮助。
答案 1 :(得分:0)
当您使用 npm 时,您可能不小心在 node_modules 中对您的库进行了符号链接,而不是使用 npm,您可以使用 yarn
yarn add file:../<module_project>