我尝试使用绝对导入路径,而不是Expo和React Native的相对路径。
我查看了Expo文档,但找不到答案...在react社区中搜索主题时,我找到了babel-plugin-module-resolver,但Expo似乎已经在使用它,因此我更改了我的.babelrc
以创建一些别名:
{
"presets": ["babel-preset-expo"],
"env": {
"development": {
"plugins": [
"transform-react-jsx-source",
["module-resolver", {
"root": ["./app"],
"alias": {
"Components": "./app/components",
}
}]
]
}
}
}
但我得到了以下错误:
Unable to resolve module '@expo/vector-icons/glyphmaps/Entypo.json'
from '/Users/eduardoleal/Code/lua/rook/node_modules/@expo/vector-icons/Entypo.js':
Module does not exist in the module map or in these directories: /Users/eduardoleal/Code/lua/rook/node_modules/@expo/vector-icons/node_modules/@expo/vector-icons/glyphmaps , /Users/eduardoleal/Code/lua/rook/node_modules/@expo/vector-icons/glyphmaps 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 packager cache: 'rm -fr $TMPDIR/react-*' or 'npm start --reset-cache'.
ABI16_0_0RCTFatal -[ABI16_0_0RCTBatchedBridge stopLoadingWithError:] __34-[ABI16_0_0RCTBatchedBridge start]_block_invoke_2 _dispatch_call_block_and_release _dispatch_client_callout _dispatch_main_queue_callback_4CF __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ __CFRunLoopRun CFRunLoopRunSpecific GSEventRunModal UIApplicationMain main start 0x0
有什么简单的方法可以导入绝对路径吗?
7条答案
按热度按时间gojuced71#
更新:Expo v32.0.0及更高版本
Expo init正在为您创建一个
babel.config.js
。只需将plugins
密钥添加到您的babel.config.js
文件并添加您的别名。不再需要env
密钥。更新:Expo.io SDK v20.0.0的变更
从SDK v20.0.0开始,您可以使用常规的巴别塔博览会预设
Expo.io v19.0.0及之前版本
如果没有
root
-元素,分隔plugins
并将presets
更改为babel-preset-react-native-stage-0/decorator-support
,则别名对我来说是有效的。在Expo.io版本16.0.0上使用www.example.com
在世博会论坛上找到了这个:https://forums.expo.io/t/relative-paths-with-expo/654/3
你能证明这对你的案子也有效吗?
5t7ly7z52#
对于最新的expo用户(sdk版本〉= 32)。
只需在babel.config.js中添加plugins属性(在项目根目录中找到此文件)。
cwdobuhd3#
经过一段时间的尝试,我可以解决以下
.babelrc
的问题:我把
babel-preset-expo
的内容拷贝到我的.babelrc
上,这不是最好的解决方案......但是可以正常工作。更多详情here
vhmi4jdf4#
package.json
那么
67up9zun5#
在Laszlo Schurg's answer的版本中,以防有人在 typescript 中遇到同样的问题。
如果您正在使用Typescript,则还需要将其添加到
tsconfig
中这是我对
babel.config
的配置tjvv9vkg6#
我同意这个建议:
在您的tsconfig.json中:
vite.config.ts解析可能如下所示:
mo49yndu7#
只是简单的让你.babelrc简单这样:
并像这样导入: