reactjs - tsconfig-vägar löses inte i React Native
Jag försöker använda TypeScripts paths-alternativ i min tsconfig.json-fil. Jag har använt paths tidigare i mina andra webb-applikationer med React. Ändå, av någon anledning vägrar Native att fungera med det.
Det här är min tsconfig.json-fil:
// Added by default by React Native
"extends": "@tsconfig/react-native/tsconfig.json",
// My options
"compilerOptions": {
"baseUrl": "./App",
"paths": {
"@Assets/*": ["Assets/*"],
"@Image/*": ["Assets/Images/*"],
},
"skipLibCheck": true,
}
Detta är min mappstruktur:
project
|__App
| |__Main.tsx
| |__Assets
| |__Images
| |__Test.png
|__tsconfig.json
Och inuti min Main.tsx-fil, är det så här jag försöker använda den:
const test = require("@Image/Test.png");
Men detta resulterar i felet:
Kunde inte lösa modulen @Image/Test.png från project/App/Main.tsx: @Image/Test.png kunde inte hittas inom projektet eller i dessa kataloger.
Jag har försökt alla svar i den här tråden utan något annat resultat.
Jag vet att filen finns eftersom den fungerar perfekt när jag ändrar require-sökvägen till den absoluta sökvägen.
Svar #1
Efter att ha letat omfattande efter detta problem stötte jag på denna blogg [1], där författaren använde ett regexmönster istället för en statisk sökväg och det fungerade för mig.
babel.config.jsmodule.exports = {
plugins: [
[
"module-resolver",
{
root: ["."],
alias: {
// "@/": "./src/" ❌ not working
"^@/(.+)": "./src/\\1", // ✅ works
},
},
],
],
};
tsconfig.json{
"compilerOptions": {
"baseUrl": ".",
"paths": {
//We will have to add the same thing in babel.config.js
"@/*": ["src/*"]
}
//other options
}
//other configs
}
Referens
1 - https://pratapsharma.com.np/path-alias-in-a-typescript-project
