创建react-nativemodule并在应用程序中使用它

IT技术 ios reactjs react-native module
2021-04-28 16:45:16

我想为 iOS 和 Android 创建 react-native module并在应用程序中使用它。

我想像本地module一样使用它,而不是上传到 npm。

当我按照官方文档中描述的步骤操作时,我总是在将module导入 App.js 文件时遇到这些错误:

从“react测试module”导入 MyModule;

找不到module“react-test-module”的声明文件。'/Users/dbellerose/Path/to/My/Module/react-test-module/index.js' 隐式具有 'any' 类型。尝试npm install @types/react-test-modulet它是否存在或添加一个包含`declare module 'react-test-module'的新声明(.d.ts)文件;

当我运行 iOS 应用程序时:

无法react-test-module/Users/Path/To/My/App/App.js以下位置解析modulereact-test-moduleHaste module映射中不存在module。

该消息给了我一些解决问题的提示,但它不起作用。

要解决尝试以下操作: 1. 清除守望者手表:watchman watch-del-all2. 删除node_modules文件夹:rm -rf node_modules && npm install3. 重置 Metro Bundler 缓存:rm -rf /tmp/metro-bundler-cache-*npm start -- --reset-cache4. 移除急速缓存:rm -rf /tmp/haste-map-react-native-packager-*

那么你知道创建module并在应用程序中使用它而不将包上传到 npm 的好过程是什么?

最好的祝福,

大卫

1个回答

以下是我可以作为清单与您分享的一些步骤:

  1. yarn global add create-react-native-module
  2. create-react-native-module MyLibrary
  3. cd 到 MyLibrary 文件夹,运行 yarn install
  4. 处理你的module

要链接到您的项目,您需要将以下内容添加到您的 package.json(路径应该是您的module所在的位置)

"react-native-test-module": "file:../", 
"react-native-my-library": "file:../../react-native-my-library/"

** 请记住,如果您在module中附加了新方法。您将需要:

  1. 从你的项目中删除 node_modules 和 Pods
  2. 重新执行yarn/npm install&pod install

希望能帮助到你。