gpt4 book ai didi

javascript - 如何在基于 TypeScript 的 React Native 应用程序中配置导入的绝对路径?

转载 作者:搜寻专家 更新时间:2023-10-30 21:20:55 25 4
gpt4 key购买 nike

为了避免在基于 TypeScript 的 React Native 应用程序中使用“../../../../”样式的相对导入,我想配置应用程序以便我可以使用绝对导入。

配置也支持 Jest 单元测试很重要。

我使用 npx react-native init MyTestApp --template typescript 创建了应用程序

React Native 版本:0.60.5

实现此目标我需要的确切配置是什么?

最佳答案

要求

// Meh
import config from '../../../../../../../config';

// Awesome!
import config from '@cuteapp/config';

如何

  1. 添加这个babel插件包
yarn add --dev babel-plugin-module-resolver
  1. 我的babel.config.js
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
plugins: [
[
require.resolve('babel-plugin-module-resolver'),
{
cwd: 'babelrc',
extensions: ['.ts', '.tsx', '.js', '.ios.js', '.android.js'],
alias: {
'@cuteapp': './app'
}
}
],
'jest-hoist'
]
};
  1. 我的tsconfig.json
{
"compilerOptions": {
"allowJs": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"isolatedModules": true,
"jsx": "react",
"lib": ["es2015", "es2015.promise", "es2016.array.include", "dom"],
"strict": true,
"moduleResolution": "node",
"baseUrl": "./",
"paths": {
"@cuteapp/*": ["app/*/index", "app/*"]
},
"noEmit": true,
"resolveJsonModule": true,
"target": "esnext",
"types": ["jest"]
},
"exclude": ["node_modules", "babel.config.js", "metro.config.js"]
}
  1. 重新启动 IDE。
  2. 就是这样。

关于javascript - 如何在基于 TypeScript 的 React Native 应用程序中配置导入的绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57798793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com