在react-native中链接和使用本地UI模块

时间:2019-03-03 18:07:15

标签: reactjs react-native

免责声明;我是新来的人。我已经下载了一个UI模块,并试图在我的项目中使用它。文件夹结构如下所示:

+----+-----------------+--------+
| id | caption         | offset |
+----+-----------------+--------+
|  1 | The quick fox   |      0 |
|  2 | jumped over the |     14 |
|  3 | lazy fox. The   |     29 |
|  4 | cow jumped over |     42 |
|  5 | the moon        |     57 |
+----+-----------------+--------+

我已将├── myProject │   ├── README.md │   └── src │   └── client │   └── {actual react-native project} └── react-native-ui-module ├── node_modules ├── package-lock.json ├── package.json └── src 添加到react-native-ui-module,如下所示:

myProject/src/client/package.json

从那里,我执行了以下命令:

"react-native-ui-module": "file:../../../react-native-ui-module", 

经过上述步骤,我可以在$ npm install $ react-native link 中看到该模块。

我期望像这样使用模块:

node_modules

但是,我收到一条错误消息,指出Haste模块映射中不存在import { Button } from 'react-native-ui-module'; react-native-ui-module`。我已尝试按照错误消息的建议进行操作,即:

这可能与https://github.com/facebook/react-native/issues/4968有关 要解决此问题,请尝试以下操作:

  1. 清晰的守望者手表:Module
  2. 删除watchman watch-del-all文件夹:node_modules
  3. 重置Metro Bundler缓存:rm -rf node_modules && npm installrm -rf /tmp/metro-bundler-cache-*
  4. 删除急速缓存:npm start -- --reset-cache

我也尝试在import语句中使用相对和绝对路径。有没有更好的导入和安装模块的方法?我还可以采取哪些其他故障排除步骤来实际使用该模块?

还要澄清一下;这是我已购买并手动下载的模块,因此npmjs无法使用该模块。

1 个答案:

答案 0 :(得分:1)

考虑到您当前的情况,您可以做的一小件事是将ui模块复制到{actual react-native project}的node_modules中,然后可以在导入中使用ui模块。这样,您甚至无需将模块添加到package.json中,但这种方法仅用于测试ui模块可以做什么。

正确的方法是在npm站点中找到此ui模块,并使用命令npm install --save [name-of-the-ui-module],然后ui模块将可供您在导入中使用。

(更新时已考虑以下评论)

为了避免npm带来的麻烦,考虑到您的库不在npm存储库中,您还可以将该库包含在项目的lib文件夹中,并像使用其他任何组件一样使用它。