Imports absolus
Par défaut, React Native ne permet pas de faire des imports absolus depuis le projet lui-même.
On est obligé d'écrire des imports relatifs, par exemple :
Il est cependant possible d'ajouter cette fonctionnalité à un projet :)
Recette
Cette recette permet de déclarer un chemin, par exemple ~
, comme répertoire racine (correspondant à ./src
),
et d'écrire des imports tels que :
- Installer le module
babel-plugin-root-import
(une dépendance en mode développement est suffisante) :
Note : Il existe d'autres modules qui offrent des fonctionnalités équivalentes.
- Modifier le fichier
babel.config.js
(Babel est l'outil qui convertit le JSX en javascript standard)
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
plugins: [
[
'babel-plugin-root-import',
{
rootPathPrefix: '~',
rootPathSuffix: 'src'
}
]
],
env: {
production: {
plugins: [
'babel-plugin-root-import',
{
rootPathPrefix: '~',
rootPathSuffix: 'src'
}
]
}
}
};
- Pour que Visual Studio Code retrouve ses petits, ajouter un fichier
jsconfig.json
. Ce fichier est normalement utilisé par certains frameworks, comme Next.js, mais pas par React Native :
Note : en général, on utilise @
pour désigner la racine (par exemple, en Next.js) mais ici,
le module babel-plugin-root-import
se mélange les pinceaux avec les modules dont le nom commence
par @
, en particulier les modules liés à la navigation 🤡🤡🤡