React native 一旦我创建并使用了自己的模块,就会出现如下错误:无法解析模块
我是react native的新手,我第一次创建了自己的模块(npm) 我曾尝试为常用组件创建我自己的模块(npm),单独使用,效果很好。但是,一旦我安装、链接到我们的应用程序中并尝试使用这些组件,就会出现如下错误:React native 一旦我创建并使用了自己的模块,就会出现如下错误:无法解析模块,react-native,npm,React Native,Npm,我是react native的新手,我第一次创建了自己的模块(npm) 我曾尝试为常用组件创建我自己的模块(npm),单独使用,效果很好。但是,一旦我安装、链接到我们的应用程序中并尝试使用这些组件,就会出现如下错误: 无法从``解析模块``:模块``在Haste模块映射中不存在。 (注意:我只使用Android Emulator进行了测试) 我已经按照以下步骤创建模块和测试应用程序 用于模块 react native init 在mainindex.js中添加组件的简单代码 并将pacakge
无法从``解析模块``:模块``在Haste模块映射中不存在。
(注意:我只使用Android Emulator进行了测试)
我已经按照以下步骤创建模块和测试应用程序
用于模块
react native init
index.js中添加组件的简单代码
{
“名称”:“,
“版本”:“0.0.1”,
“私人”:没错,
“main”:“index.js”,
“脚本”:{
“启动”:“反应本机启动”,
“测试”:“玩笑”,
“lint”:“eslint.”,
“构建”:“echo‘已执行构建脚本’”
},
“依赖项”:{
“反应”:“16.8.6”,
“反应本机”:“0.60.4”
},
react native init
)npm安装
react-native-link
,我也尝试了simplereact-native-link
,但什么也没发生react native run android
,但每次都会出现相同的错误,如
无法解析模块
package.json
{
“名称”:“,
“版本”:“0.0.1”,
“私人”:没错,
“脚本”:{
“启动”:“反应本机启动”,
“测试”:“玩笑”,
“lint”:“eslint”
},
“依赖项”:{
“反应”:“16.8.6”,
“反应本机”:“0.60.4”,
“我的库”:“^1.0.2”,
“”文件:../
},
“依赖性”:{
“@babel/core”:“7.5.5”,
“@babel/runtime”:“7.5.5”,
“@react native community/eslint config”:“0.0.3”,
“巴别塔笑话”:“24.8.0”,
“eslint”:“6.1.0”,
“笑话”:“24.8.0”,
“metro react native babel预设”:“0.54.1”,
“反应测试渲染器”:“16.8.6”
},
“笑话”:{
“预设”:“本机反应”
}
}
创建的模块已成功安装,但我认为它没有正确链接,它将给出错误消息
那么这里出了什么问题
请给我建议/帮助
谢谢。我假设您的模块已成功发布到npm存储库中。否则,您无法使用
npm安装
如果您正在使用
npm安装
用于从npm repo将模块安装到测试应用程序的命令。请在package.json中指定
"<created-module-name>": "file:../<created-module-name>"
然后,您只需按照我上面提到的手动链接过程进行操作。您的模块是否有android和ios文件夹?大多数情况下,
react native link
不适用于本机库。您必须自己进行操作。@firats模块适用于android和ios,实际上它不是特定的android和ios,我也尝试了react native link但是android中没有什么可以改变的,比如gradlefile、setting.gradle等。你找到解决方案了吗?我没有发布我的模块,我只是在我的本地PC上使用。关于package.json,这行“:”文件:../”自动创建。根据你的回答,我按照一个步骤,然后解决“无法解析模块”的错误但我仍然面临一个问题,一旦我在测试应用程序中使用组件,请检查下面的屏幕截图:错误:模块包,json创建simpale text component app.js test app package.json使用板条箱组件app.js@Firats从您的屏幕截图中可以看出,您为您的组件创建了一个新项目而不是库,然后您试图将其导入到主项目中。这是一种错误的方法。您无法将react本机项目导入到另一个项目中。您应该创建一个react本机库来完成此操作。从项目中删除您的模块,然后您可以用这种方式创建新库。之后,再次按照我的答案进行操作。好的,让我试试。@firatsDon't for创建android&ios文件夹后,可以从库中删除它。因为您只想使用jsx文本组件。
npm install --save <full path of component>
"dependencies": {
...
"your_module_name": "your_module_version"
...
}