Questa guida è intesa come riferimento per me stesso durante la configurazione delle app React Native con Typescript. Spiega i passaggi necessari per configurare tre diversi modi di configurare gli alias di percorso durante la creazione di un'applicazione React Native.
components/*src/*@/*Immagina di avere la seguente configurazione nuda per un progetto React Native:
/Users/skaan/Dev/rnapp
├── App.tsx
├── app.json
├── babel.config.js
├── package.json
├── src
| ├── components
| | ├── form
| | | ├── TextInput.tsx
| | | └── index.tsx
| ├── index.tsx
| └── screens
| └── Auth
| └── index.tsx
| └── AuthForm.tsx
├── tsconfig.json
└── yarn.lock
import { TextInput } from “../../components/form”
Il primo obiettivo è configurare il progetto in modo tale da poter utilizzare importazioni assolute per directory specifiche come
import { TextInput } from “components/form”
1. Impostare Path Alias per Typescript
Dobbiamo modificare tsconfig.json per dire a Typescript dove può trovare i nostri moduli
// tsconfig.json
{
"extends": "@tsconfig/react-native/tsconfig.json",
"compilerOptions": {
"baseUrl": ".",
"paths": {
"components/*": ["src/components/*"]
}
},
...
}
Dobbiamo anche dire a React Native dove prendere i nostri file, a questo scopo dobbiamo configurare Babel.
Installa la babel-plugin-module-resolverdipendenza come sviluppatore
yarn add --dev babel-plugin-module-resolver
npm install -save-dev babel-plugin-module-resolver
// babel.config.js
module.exports = {
presets: ["module:metro-react-native-babel-preset"],
plugins: [
[
"module-resolver",
{
root: ["./src"],
extensions: [".ios.js", ".android.js", ".js", ".ts", ".tsx", ".json"],
alias: {
"components/": "./src/components"
},
},
],
],
}
Il secondo obiettivo è consentire al progetto di utilizzare importazioni assolute per la directory src :
import { TextInput } from “src/components/form”
1. Impostare Path Alias per Typescript
Dobbiamo modificare tsconfig.json per includere un alias di percorso per la directory src
// tsconfig.json
{
"extends": "@tsconfig/react-native/tsconfig.json",
"compilerOptions": {
"baseUrl": ".",
"paths": {
"components/*": ["src/components/*"],
"src/*": ["src/*"]
},
},
...
}
Dobbiamo anche dire a React Native dove prendere i nostri file, a questo scopo dobbiamo aggiungere anche la mappatura per la directory src a Babel.
// babel.config.js
module.exports = {
presets: ["module:metro-react-native-babel-preset"],
plugins: [
[
"module-resolver",
{
root: ["./src"],
extensions: [".ios.js", ".android.js", ".js", ".ts", ".tsx", ".json"],
alias: {
"components/": "./src/components",
"src/": "./src"
}
}
]
]
}
Il terzo obiettivo è consentire al progetto di utilizzare importazioni assolute per la directory src con un prefisso.
import { TextInput } from “@/components/form”
Questa è l'opzione che di solito scelgo, poiché è abbastanza conveniente. Puoi distinguere chiaramente importazioni relative, importazioni assolute e importazioni da node_modules .
1. Impostare Path Alias per Typescript
Dobbiamo modificare tsconfig.json per includere un alias di percorso per la directory src
// tsconfig.json
{
"extends": "@tsconfig/react-native/tsconfig.json",
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
},
},
...
}
Dobbiamo anche dire a React Native dove prendere i nostri file, a questo scopo dobbiamo aggiungere la mappatura per la directory src a Babel con il prefisso utilizzato.
// babel.config.js
module.exports = {
presets: ["module:metro-react-native-babel-preset"],
plugins: [
[
"module-resolver",
{
root: ["./src"],
extensions: [".ios.js", ".android.js", ".js", ".ts", ".tsx", ".json"],
alias: {
"@/": "./src"
}
}
]
]
}
{
"name": "@"
}
Questa settimana ho ricevuto un'e-mail da un membro della mailing list quotidiana. Volevano sapere: quali risorse visiti giornalmente, settimanalmente e mensilmente? Ottima domanda! Sono felice di provare a condividere alcune informazioni sul mio flusso di lavoro e sulle migliori risorse che utilizzo.
Lo scopo di questa serie di blog è approfondire la libreria Lit e acquisire una comprensione completa delle sue caratteristiche uniche e di come si distingue dalle altre librerie e framework sul mercato. La serie è divisa in tre parti, che coprono argomenti come 1.
Spesso ci troviamo a lottare per implementare ciò che sappiamo essere buono per noi. Dal dire a un altro significativo che li amiamo al ricordare di parlare come un pirata, ci saranno sempre quelli che affermeranno che un giorno, una settimana o un mese di eventi non è necessario perché stanno già facendo quelle cose.
Per evitare ambiguità verranno utilizzati i seguenti termini; Autenticatore; Il telefono cellulare utilizzato per effettuare il login Sito web; Il sito Web o l'applicazione che l'utente sta utilizzando per effettuare la richiesta di accesso al Servizio; Il fornitore che fornisce il servizio dato, ad es
Il prurito alla mano si diffuse mentre mercanteggiavo con il libraio locale per un altro libro. Questo libro, come il resto che ho acquistato di recente, troverebbe il suo trono nella mia pila "Da leggere" (TBR); eppure l'ho comprato.
Se vogliamo continuare a prosperare su questo pianeta, dovremo avere conversazioni pericolose. Quelli che mettono in discussione ciò che abbiamo fatto, ciò che stiamo facendo e ciò che attualmente intendiamo continuare a fare (o stiamo pianificando di fare).