À propos du projet
`n` est un gestionnaire de versions Node.js léger, basé sur BASH, conçu pour la simplicité. Il permet aux utilisateurs de télécharger, installer et basculer entre plusieurs versions de Node.js de manière interactive ou via des arguments de ligne de commande, sans nécessiter de sous-shells, de modifications de profil ou d'API complexes.
## Plateformes prises en charge
`n` fonctionne sur macOS, Linux (y compris le sous-système Windows pour Linux) et d'autres systèmes de type Unix. Il ne fonctionne pas dans les shells Windows natifs (par exemple, PowerShell), Git pour Windows BASH, ou avec la DLL Cygwin.
## Installation
Si Node.js est déjà installé, le moyen le plus simple d'installer `n` est via npm :
```bash
npm install -g n
```
Par défaut, `n` s'installe dans `/usr/local`, ce qui peut nécessiter des autorisations appropriées. Les options incluent la modification de la propriété du répertoire, l'utilisation d'un emplacement `N_PREFIX` personnalisé, ou l'exécution avec `sudo`.
Pour l'installation initiale sans npm, vous pouvez télécharger et exécuter `n` directement :
```bash
curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n | bash -s install lts
```
Des installateurs tiers sont disponibles pour macOS via Homebrew (`brew install n`) et MacPorts (`port install n`), et pour Linux/macOS via `n-install`.
## Fonctionnalités clés
- **Sélection interactive** : Exécutez `n` seul pour voir les versions téléchargées et sélectionnez-en une avec les touches fléchées.
- **Spécification de version** : Prend en charge les numéros de version complets ou partiels (par exemple, `4.9.1`, `8`, `v6.1`), des étiquettes comme `lts`, `latest`, `current`, et des noms de code (`argon`, `boron`, `carbon`).
- **Détection automatique de version** : Lit `.n-node-version`, `.node-version`, `.nvmrc`, ou le champ `engines` dans `package.json`.
- **Gestion du cache** : Les téléchargements sont mis en cache pour les réinstallations hors ligne ; `n ls` liste les versions en cache, `n rm` supprime des versions spécifiques, `n prune` efface tout sauf la version active.
- **Exécution directe** : `n run <version> <script>` exécute un script avec une version spécifique de Node.js ; `n exec <version> <command>` exécute une commande avec le `PATH` de la version ; `n which <version>` montre le chemin du binaire.
- **Préservation de npm** : Utilisez `--preserve` ou `N_PRESERVE_NPM`/`N_PRESERVE_COREPACK` pour conserver les versions actuelles de npm/corepack.
- **Miroirs personnalisés** : Définissez `N_NODE_MIRROR` ou `N_NODE_DOWNLOAD_MIRROR` pour des sources de téléchargement alternatives (par exemple, miroir chinois ou builds non officiels).
- **Remplacement d'architecture** : Utilisez `--arch` ou `N_ARCH` pour sélectionner des binaires spécifiques (par exemple, `x64-musl` pour Alpine).
- **Variables d'environnement** : `N_PREFIX` change l'emplacement d'installation ; `N_CACHE_PREFIX` change l'emplacement du cache ; `NO_COLOR`/`CLICOLOR=0` contrôlent les couleurs ANSI.
- **Diagnostics** : `n doctor` aide à résoudre les problèmes.
## Exemples d'utilisation
```bash
n 10.16.0 # Installer une version spécifique
n lts # Installer la dernière LTS
n ls-remote lts # Lister les versions distantes correspondantes
n ls # Lister les versions en cache
n rm 0.9.4 # Supprimer une version en cache
n uninstall # Supprimer Node.js actif (conserver le cache)
n run 8.11.3 --debug some.js
n exec 10 my-script --fast test
n --offline 12 # Utiliser la version en cache sans internet
```
## Comment cela fonctionne
`n` télécharge les archives Node.js dans un dossier de cache (par défaut : `N_PREFIX/n/versions`) et installe la version active dans les sous-répertoires `bin`, `include`, `lib` et `share`. Il ne modifie pas les packages npm globaux sauf si `--preserve` est utilisé. L'outil est conçu pour être minimal et transparent, ce qui en fait un choix populaire pour les développeurs qui préfèrent un gestionnaire de versions simple.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.