I have recently setup a react native typescript project
I have been trying to get absolute paths working with the setup guide here. But no matter what I seem to do I continually get the error Cannot find module 'X' or its corresponding type declarations TS(2307)
In its current state my tsconfig looks like
{"extends": "expo/tsconfig.base","include": ["./src/**/*"],"compilerOptions": {"allowJs": true,"allowSyntheticDefaultImports": true,"esModuleInterop": true,"isolatedModules": true,"jsx": "react-native","lib": ["es2017"],"moduleResolution": "node","noEmit": true,"strict": true,"target": "esnext","baseUrl": ".","paths": {"@util/*": ["./src/util/*"],"@components/*": ["./src/components/*"], } },"exclude": ["node_modules","babel.config.js","metro.config.js","jest.config.js" ]}My babel.config.js looks like the following
module.exports = (api) => { api.cache(true); const presets = ['babel-preset-expo']; const plugins = [ ['module-resolver', { root: ['./src'], extensions: ['.ios.js', '.android.js', '.js', '.jsx', '.ts', '.tsx', '.json'], alias: {'@components': './src/components','@util': './src/util', }, }, ], ]; return { presets, plugins, };};My current eslintrc.js looks like the following
module.exports = { env: { browser: true, es2021: true, }, extends: ['plugin:react/recommended','airbnb', ], parser: '@typescript-eslint/parser', parserOptions: { ecmaFeatures: { jsx: true, tsx: true, }, ecmaVersion: 13, sourceType: 'module', }, globals: { React: 'readonly', JSX: 'readonly', }, plugins: ['react','import','@typescript-eslint', ], rules: {'react/jsx-filename-extension': [2, { extensions: ['.js', '.jsx', '.ts', '.tsx'] }],'import/extensions': ['error', 'ignorePackages', { js: 'never', jsx: 'never', ts: 'never', tsx: 'never', }],'no-use-before-define': 'off', }, settings: {'import/resolver': { node: { path: ['src'], extensions: ['.js', '.jsx', '.ts', '.tsx'], }, typescript: { alwaysTryTypes: true, }, // 'babel-module': {}, }, },};A few things I have tried so far - after each have been restarting vscode/ts server
- Changed names of paths so that they didn't have
@as a prefix, no difference - Changed
baseUrltosrcand updated paths accordingly, no difference - Tried to use
babel-plugin-module-resolverin eslint, no difference - Tried to use
metro-react-native-babel-presetwith babel, no difference - Tried to change
babel.config.jsto a.babelrcandbabel.config.jsonfile neither made a difference - Been playing around with
tsconfigsettings for a while and not much luck
My project is very simple at the moment simply consisting of the boilerplate template downloaded from yarn expo init -t expo-template-blank-typescript. Looking something like
src components index.ts TestButton.tsx util index.ts ThemesProvider.tsx index.tsApp.tsxtsconfig.json.eslintrcbabel.config.js...Any help with this would be greatly appreciated, I imagine it is something super small, but I have been tweaking settings for a while now and have no clue what is wrong with the setup.