Introduction
À propos
Installation et mise à jour
Notes complémentaires
Dépannage sous Linux
Dépannage sur macOS
Ansible
Script d'installation et de mise à jour
Vérifier l'installation
Remarques importantes
Installation de Git
Installation manuelle
Mise à niveau manuelle
Usage
Appel de nvm use
automatiquement dans un répertoire avec un fichier .nvmrc
frapper
zsh
poisson
Passer l'en-tête d'autorisation au miroir
Couleurs personnalisées persistantes
Suppression de la sortie colorisée
Assistance à long terme
Migration des packages globaux lors de l'installation
Packages globaux par défaut à partir du fichier lors de l'installation
io.js
Version système du nœud
Liste des versions
Définition de couleurs personnalisées
Restauration du CHEMIN
Définir la version du nœud par défaut
Utiliser un miroir de binaires de nœuds
.nvmrc
Intégration plus approfondie du shell
Exécution de tests
Variables d'environnement
Achèvement du coup
Usage
Problèmes de compatibilité
Installation de NVM sur Alpine Linux
Linux alpin 3.13+
Linux alpin 3.5 - 3.12
Désinstallation / Suppression
Désinstallation manuelle
Docker pour l'environnement de développement
Problèmes
Dépannage macOS
Dépannage WSL
Mainteneurs
Soutien au projet
Assistance entreprise
Licence
Avis de droit d'auteur
nvm
vous permet d'installer et d'utiliser rapidement différentes versions de node via la ligne de commande.
Exemple:
$ nvm utilise 16 Utilise maintenant le nœud v16.9.1 (npm v7.21.1) $ nœud -v v16.9.1 $ nvm utilise 14 Utilise maintenant le nœud v14.18.0 (npm v6.14.15) $ nœud -v v14.18.0 $ nvm installer 12 Utilise maintenant le nœud v12.22.6 (npm v6.14.5) $ nœud -v v12.22.6
Aussi simple que ça !
nvm est un gestionnaire de versions pour node.js, conçu pour être installé par utilisateur et invoqué par shell. nvm
fonctionne sur n'importe quel shell compatible POSIX (sh, dash, ksh, zsh, bash), en particulier sur ces plateformes : unix, macOS et Windows WSL.
Pour installer ou mettre à jour nvm, vous devez exécuter le script d'installation. Pour ce faire, vous pouvez soit télécharger et exécuter le script manuellement, soit utiliser la commande cURL ou Wget suivante :
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | frapper
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | frapper
L'exécution de l'une des commandes ci-dessus télécharge un script et l'exécute. Le script clone le référentiel nvm dans ~/.nvm
et tente d'ajouter les lignes sources de l'extrait ci-dessous au fichier de profil correct ( ~/.bash_profile
, ~/.zshrc
, ~/.profile
ou ~/.bashrc
). .
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"[ -s "$ NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # Ceci charge nvm
Si la variable d'environnement $XDG_CONFIG_HOME
est présente, elle y placera les fichiers nvm
.
Vous pouvez ajouter --no-use
à la fin du script ci-dessus (... nvm.sh --no-use
) pour reporter l'utilisation nvm
jusqu'à ce que vous l' use
manuellement.
Vous pouvez personnaliser la source d'installation, le répertoire, le profil et la version à l'aide des variables NVM_SOURCE
, NVM_DIR
, PROFILE
et NODE_VERSION
. Ex : curl ... | NVM_DIR="path/to/nvm"
. Assurez-vous que NVM_DIR
ne contient pas de barre oblique finale.
Le programme d'installation peut utiliser git
, curl
ou wget
pour télécharger nvm
, selon celui disponible.
Vous pouvez demander au programme d'installation de ne pas modifier la configuration de votre shell (par exemple si vous obtenez déjà des complétions via un plugin zsh nvm) en définissant PROFILE=/dev/null
avant d'exécuter le script install.sh
. Voici un exemple de commande sur une ligne pour ce faire : PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash'
Sous Linux, après avoir exécuté le script d'installation, si vous obtenez nvm: command not found
ou ne voyez aucun retour de votre terminal après avoir tapé command -v nvm
, fermez simplement votre terminal actuel, ouvrez un nouveau terminal et essayez de vérifier à nouveau. Vous pouvez également exécuter les commandes suivantes pour les différents shells sur la ligne de commande :
bash : source ~/.bashrc
zsh : source ~/.zshrc
ksh : . ~/.profile
Ceux-ci devraient récupérer la commande nvm
.
Depuis OS X 10.9, /usr/bin/git
a été prédéfini par les outils de ligne de commande Xcode, ce qui signifie que nous ne pouvons pas détecter correctement si Git est installé ou non. Vous devez installer manuellement les outils de ligne de commande Xcode avant d'exécuter le script d'installation, sinon il échouera. (voir #1782)
Si la nvm: command not found
après l'exécution du script d'installation, l'une des raisons suivantes peut en être la cause :
Depuis macOS 10.15, le shell par défaut est zsh
et nvm recherchera .zshrc
à mettre à jour, aucun n'est installé par défaut. Créez-en un avec touch ~/.zshrc
et exécutez à nouveau le script d'installation.
Si vous utilisez bash, le shell par défaut précédent, votre système ne dispose peut-être pas de fichiers .bash_profile
ou .bashrc
dans lesquels la commande est configurée. Créez-en un avec touch ~/.bash_profile
ou touch ~/.bashrc
et exécutez à nouveau le script d'installation. Ensuite, exécutez . ~/.bash_profile
ou . ~/.bashrc
pour récupérer la commande nvm
.
Vous avez déjà utilisé bash
, mais zsh
est installé. Vous devez ajouter manuellement ces lignes à ~/.zshrc
et exécuter . ~/.zshrc
.
Vous devrez peut-être redémarrer votre instance de terminal ou exécuter . ~/.nvm/nvm.sh
. Redémarrer votre terminal/ouvrir un nouvel onglet/une nouvelle fenêtre ou exécuter la commande source chargera la commande et la nouvelle configuration.
Si les solutions ci-dessus ne vous aident pas, vous devrez peut-être redémarrer votre instance de terminal. Essayez d'ouvrir un nouvel onglet/une nouvelle fenêtre dans votre terminal et réessayez.
Si les solutions ci-dessus ne résolvent pas le problème, vous pouvez essayer ce qui suit :
Si vous utilisez bash, il se peut que votre .bash_profile
(ou ~/.profile
) ne source pas correctement votre ~/.bashrc
. Vous pouvez résoudre ce problème en y ajoutant source ~/<your_profile_file>
ou en suivant l'étape suivante ci-dessous.
Essayez d'ajouter l'extrait de la section d'installation, qui trouve le bon répertoire nvm et charge nvm, à votre profil habituel ( ~/.bash_profile
, ~/.zshrc
, ~/.profile
ou ~/.bashrc
).
Pour plus d'informations sur ce problème et les solutions possibles, veuillez vous référer ici
Remarque Pour les Mac équipés de la puce Apple Silicon, Node a commencé à proposer des packages arm64 arch Darwin depuis la v16.0.0 et une prise en charge expérimentale arm64 lors de la compilation à partir des sources depuis la v14.17.0. Si vous rencontrez des problèmes lors de l'installation du nœud à l'aide nvm
, vous souhaiterez peut-être mettre à jour vers l'une de ces versions ou une version ultérieure.
Vous pouvez utiliser une tâche :
- nom : Installer nvm ansible.builtin.shell : > curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash args : crée : "{{ ansible_env.HOME }}/.nvm/nvm.sh"
Pour vérifier que NVM a été installé, procédez :
commande -v nvm
qui devrait afficher nvm
si l'installation a réussi. Veuillez noter que which nvm
ne fonctionnera pas, puisque nvm
est une fonction shell provenant d'une source, pas un binaire exécutable.
Remarque : sous Linux, après avoir exécuté le script d'installation, si vous obtenez nvm: command not found
ou ne voyez aucun retour de votre terminal après avoir tapé command -v nvm
, fermez simplement votre terminal actuel, ouvrez un nouveau terminal et essayez de vérifier à nouveau.
Si vous utilisez un système sans binaire préemballé disponible, ce qui signifie que vous allez installer node ou io.js à partir de son code source, vous devez vous assurer que votre système dispose d'un compilateur C++. Pour OS X, Xcode fonctionnera, pour GNU/Linux basé sur Debian/Ubuntu, les packages build-essential
et libssl-dev
fonctionnent.
Remarque : nvm
prend également en charge Windows dans certains cas. Cela devrait fonctionner via WSL (Windows Subsystem for Linux) selon la version de WSL. Cela devrait également fonctionner avec GitBash (MSYS) ou Cygwin. Sinon, pour Windows, quelques alternatives existent, qui ne sont ni supportées ni développées par nos soins :
NVM-Windows
nodiste
nvs
Remarque : nvm
ne prend pas non plus en charge Fish (voir #303). Des alternatives existent, qui ne sont ni soutenues ni développées par nos soins :
bass vous permet d'utiliser des utilitaires écrits pour Bash dans fish shell
fast-nvm-fish ne fonctionne qu'avec les numéros de version (pas les alias) mais ne ralentit pas considérablement le démarrage de votre shell
plugin-nvm plugin pour Oh My Fish, qui rend nvm et ses complétions disponibles dans fish shell
fnm - gestionnaire de versions pour poissons basé sur les pêcheurs
fish-nvm - Wrapper autour de NVM pour Fish, retarde l'approvisionnement en NVM jusqu'à ce qu'il soit réellement utilisé.
Remarque : Nous avons encore quelques problèmes avec FreeBSD, car il n'existe pas de binaire officiel pré-construit pour FreeBSD, et la construction à partir des sources peut nécessiter des correctifs ; voir le ticket d'émission :
[#900] Le nœud [Bug] sur FreeBSD devra peut-être être corrigé
nodejs/noeud#3716
Remarque : sous OS X, si Xcode n'est pas installé et que vous ne souhaitez pas télécharger le fichier d'environ 4,3 Go, vous pouvez installer les Command Line Tools
. Vous pouvez consulter cet article de blog pour savoir comment procéder :
Comment installer les outils de ligne de commande dans OS X Mavericks et Yosemite (sans Xcode)
Remarque : Sous OS X, si vous avez installé un nœud « système » et que vous souhaitez installer des modules globalement, gardez à l'esprit que :
Lorsque vous utilisez nvm
vous n'avez pas besoin sudo
pour installer globalement un module avec npm -g
, donc au lieu de faire sudo npm install -g grunt
, faites plutôt npm install -g grunt
Si vous disposez d'un fichier ~/.npmrc
, assurez-vous qu'il ne contient aucun paramètre prefix
(qui n'est pas compatible avec nvm
)
Vous pouvez (mais ne devriez pas ?) conserver votre précédente installation de nœud « système », mais nvm
ne sera disponible que pour votre compte utilisateur (celui utilisé pour installer nvm). Cela pourrait entraîner des incompatibilités de version, car d'autres utilisateurs utiliseront /usr/local/lib/node_modules/*
VS votre compte utilisateur utilisant ~/.nvm/versions/node/vX.XX/lib/node_modules/*
L'installation homebrew n'est pas prise en charge. Si vous rencontrez des problèmes avec nvm
installé par homebrew, veuillez le brew uninstall
et l'installer en suivant les instructions ci-dessous, avant de signaler un problème.
Remarque : Si vous utilisez zsh
vous pouvez facilement installer nvm
en tant que plugin zsh. Installez zsh-nvm
et exécutez nvm upgrade
pour effectuer la mise à niveau.
Remarque : les versions de Git antérieures à la v1.7 peuvent être confrontées à un problème de clonage de la source nvm
à partir de GitHub via le protocole https, et il existe également un comportement différent de git avant la v1.6, et git antérieur à la v1.17.10 ne peut pas cloner les balises, donc le minimum la version requise de git est la v1.7.10. Si vous êtes intéressé par le problème que nous avons mentionné ici, veuillez vous référer à l'article sur les erreurs de clonage HTTPS de GitHub.
Si git
est installé (nécessite git v1.7.10+) :
clonez ce dépôt à la racine de votre profil utilisateur
cd ~/
de n'importe où puis git clone https://github.com/nvm-sh/nvm.git .nvm
cd ~/.nvm
et consultez la dernière version avec git checkout v0.40.1
activez nvm
en le recherchant depuis votre shell : . ./nvm.sh
Ajoutez maintenant ces lignes à votre fichier ~/.bashrc
, ~/.profile
ou ~/.zshrc
pour qu'il soit automatiquement généré lors de la connexion : (vous devrez peut-être ajouter plusieurs des fichiers ci-dessus)
export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # Ceci charge nvm[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # Ceci charge nvm bash_completion
Pour une installation entièrement manuelle, exécutez les lignes suivantes pour cloner d'abord le référentiel nvm
dans $HOME/.nvm
, puis chargez nvm
:
exporter NVM_DIR="$HOME/.nvm" && ( git clone https://github.com/nvm-sh/nvm.git "$NVM_DIR" cd "$NVM_DIR" git checkout `git décrire --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`) && . "$NVM_DIR/nvm.sh"
Ajoutez maintenant ces lignes à votre fichier ~/.bashrc
, ~/.profile
ou ~/.zshrc
pour qu'il soit automatiquement généré lors de la connexion : (vous devrez peut-être ajouter plusieurs des fichiers ci-dessus)
export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # Ceci charge nvm[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # Ceci charge nvm bash_completion
Pour une mise à niveau manuelle avec git
(nécessite git v1.7.10+) :
passer au $NVM_DIR
déroulez les dernières modifications
consultez la dernière version
activer la nouvelle version
( CD "$NVM_DIR" git fetch --tags origine git checkout `git décrire --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`) && . "$NVM_DIR/nvm.sh"
Pour télécharger, compiler et installer la dernière version de Node, procédez comme suit :
nvm install node # "node" est un alias pour la dernière version
Pour installer une version spécifique de node :
nvm install 14.7.0 # ou 16.3.0, 12.22.1, etc.
Pour définir un alias :
nvm alias mon_alias v14.4.0
Assurez-vous que votre alias ne contient aucun espace ni barre oblique.
La première version installée devient la version par défaut. Les nouveaux shells démarreront avec la version par défaut du nœud (par exemple, nvm alias default
).
Vous pouvez lister les versions disponibles en utilisant ls-remote
:
NVM LS-Remote
Et puis, dans n'importe quel nouveau shell, utilisez simplement la version installée :
NVM utilise le nœud
Ou vous pouvez simplement l'exécuter :
Nvm exécuter le nœud --version
Ou bien, vous pouvez exécuter n'importe quelle commande arbitraire dans un sous-shell avec la version souhaitée du nœud :
Nœud nvm exec 4.2 --version
Vous pouvez également obtenir le chemin d'accès à l'exécutable là où il a été installé :
nvm qui 12.22
À la place d'un pointeur de version comme "14.7" ou "16.3" ou "12.22.1", vous pouvez utiliser les alias spéciaux par défaut suivants avec nvm install
, nvm use
, nvm run
, nvm exec
, nvm which
, etc :
node
: cela installe la dernière version de node
iojs
: cela installe la dernière version de io.js
stable
: cet alias est obsolète et ne s'applique véritablement qu'au node
v0.12
et versions antérieures. Actuellement, il s'agit d'un alias pour node
.
unstable
: cet alias pointe vers node
v0.11
- la dernière version de nœud "instable", depuis la version post-1.0, toutes les versions de nœud sont stables. (dans SemVer, les versions communiquent la casse, pas la stabilité).
Le nœud a un calendrier de support à long terme (LTS). Vous pouvez référencer les versions LTS dans des alias et des fichiers .nvmrc
avec la notation lts/*
pour la dernière LTS et lts/argon
pour les versions LTS à partir de la ligne "argon", par exemple . De plus, les commandes suivantes prennent en charge les arguments LTS :
nvm install --lts
/ nvm install --lts=argon
/ nvm install 'lts/*'
/ nvm install lts/argon
nvm uninstall --lts
/ nvm uninstall --lts=argon
/ nvm uninstall 'lts/*'
/ nvm uninstall lts/argon
nvm use --lts
/ nvm use --lts=argon
/ nvm use 'lts/*'
/ nvm use lts/argon
nvm exec --lts
/ nvm exec --lts=argon
/ nvm exec 'lts/*'
/ nvm exec lts/argon
nvm run --lts
/ nvm run --lts=argon
/ nvm run 'lts/*'
/ nvm run lts/argon
nvm ls-remote --lts
/ nvm ls-remote --lts=argon
nvm ls-remote 'lts/*'
/ nvm ls-remote lts/argon
nvm version-remote --lts
/ nvm version-remote --lts=argon
/ nvm version-remote 'lts/*'
/ nvm version-remote lts/argon
Chaque fois que votre copie locale de nvm
se connecte à https://nodejs.org, elle recréera les alias locaux appropriés pour toutes les lignes LTS disponibles. Ces alias (stockés sous $NVM_DIR/alias/lts
) sont gérés par nvm
, et vous ne devez pas modifier, supprimer ou créer ces fichiers - attendez-vous à ce que vos modifications soient annulées et attendez-vous à ce que toute ingérence dans ces fichiers provoque des bugs qui risquent de provoquer des erreurs. ne soit pas pris en charge.
Pour obtenir la dernière version LTS du nœud et migrer vos packages installés existants, utilisez
nvm install --reinstall-packages-from=current 'lts/*'
Si vous souhaitez installer une nouvelle version de Node.js et migrer les packages npm d'une version précédente :
nvm install --reinstall-packages-from=node nœud
Cela utilisera d'abord le "nœud de version nvm" pour identifier la version actuelle à partir de laquelle vous migrez les packages. Ensuite, il résout la nouvelle version à installer à partir du serveur distant et l'installe. Enfin, il exécute "nvm reinstall-packages" pour réinstaller les packages npm de votre version précédente de Node vers la nouvelle.
Vous pouvez également installer et migrer des packages npm à partir de versions spécifiques de Node comme ceci :
nvm install --reinstall-packages-from=5 6 nvm install --reinstall-packages-from=iojs v4.2
Notez que la réinstallation des packages ne met pas explicitement à jour la version de npm – cela permet de garantir que npm n'est pas accidentellement mis à niveau vers une version cassée pour la nouvelle version du nœud.
Pour mettre à jour npm en même temps, ajoutez l'indicateur --latest-npm
, comme ceci :
nvm install --reinstall-packages-from=default --latest-npm 'lts/*'
ou, vous pouvez à tout moment exécuter la commande suivante pour obtenir la dernière version de npm prise en charge sur la version actuelle du nœud :
nvm install-dernier-npm
Si vous avez déjà reçu une erreur du type "npm ne prend pas en charge Node.js", vous devrez (1) revenir à une version précédente du nœud ( nvm ls
& nvm use <your latest _working_ version from the ls>
), (2) supprimez la version du nœud nouvellement créée ( nvm uninstall <your _broken_ version of node from the ls>
), puis (3) réexécutez votre nvm install
avec --latest-npm
drapeau.
Si vous avez une liste de packages par défaut que vous souhaitez installer à chaque fois que vous installez une nouvelle version, nous la prenons également en charge : ajoutez simplement les noms des packages, un par ligne, au fichier $NVM_DIR/default-packages
. Vous pouvez ajouter tout ce que npm accepterait comme argument de package sur la ligne de commande.
# $NVM_DIR/default-packagesrimraf [email protected] stevemao/pavé gauche
Si vous souhaitez installer io.js :
nvm installer iojs
Si vous souhaitez installer une nouvelle version de io.js et migrer les packages npm d'une version précédente :
nvm install --reinstall-packages-from=iojs iojs
Les mêmes directives mentionnées pour la migration des packages npm dans node sont applicables à io.js.
Si vous souhaitez utiliser la version de node installée sur le système, vous pouvez utiliser l'alias spécial par défaut « système » :
NVM utilise le système nvm exécuter le système --version
Si vous voulez voir quelles versions sont installées :
NVM LS
Si vous souhaitez voir quelles versions sont disponibles à installer :
NVM LS-Remote
Vous pouvez définir cinq couleurs qui seront utilisées pour afficher les informations de version et d'alias. Ces couleurs remplacent les couleurs par défaut. Les couleurs initiales sont : gbyre
Codes couleurs :
r/R = red / bold red g/G = green / bold green b/B = blue / bold blue c/C = cyan / bold cyan m/M = magenta / bold magenta y/Y = yellow / bold yellow k/K = black / bold black e/W = light grey / white
nvm définir les couleurs rgBcm
Si vous souhaitez que les couleurs personnalisées persistent après la fin du shell, exportez la variable NVM_COLORS
dans votre profil shell. Par exemple, si vous souhaitez utiliser du cyan, du magenta, du vert, du rouge gras et du jaune gras, ajoutez la ligne suivante :
exporter NVM_COLORS='cmgRY'
nvm help (or -h or --help)
, nvm ls
, nvm ls-remote
et nvm alias
produisent généralement une sortie colorisée. Vous pouvez désactiver les couleurs avec l'option --no-colors
(ou en définissant la variable d'environnement TERM=dumb
) :
nvm ls --pas de couleurs aide nvm --pas de couleurs TERME = stupide nvm ls
Pour restaurer votre PATH, vous pouvez le désactiver :
NVM désactiver
Pour définir une version de nœud par défaut à utiliser dans tout nouveau shell, utilisez l'alias « default » :
nvm alias default node # ceci fait référence à la dernière version installée de nodenvm alias default 18 # cela fait référence à la dernière version v18.x installée de nodenvm alias default 18.12 # cela fait référence à la dernière version v18.12.x installée de node
Pour utiliser un miroir des binaires du nœud, définissez $NVM_NODEJS_ORG_MIRROR
:
exporter NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist Nœud d'installation NVM NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install 4.2
Pour utiliser un miroir des binaires io.js, définissez $NVM_IOJS_ORG_MIRROR
:
exporter NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm installer iojs-v1.0.3 NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm installer iojs-v1.0.3
nvm use
ne créera pas, par défaut, de lien symbolique "actuel". Définissez $NVM_SYMLINK_CURRENT
sur "true" pour activer ce comportement, ce qui est parfois utile pour les IDE. Notez que l'utilisation nvm
dans plusieurs onglets du shell avec cette variable d'environnement activée peut provoquer des conditions de concurrence.
Pour transmettre un en-tête d'autorisation à l'URL du miroir, définissez $NVM_AUTH_HEADER
NVM_AUTH_HEADER="Bearer secret-token" Nœud d'installation nvm
Vous pouvez créer un fichier .nvmrc
contenant un numéro de version de nœud (ou toute autre chaîne comprise par nvm
; voir nvm --help
pour plus de détails) dans le répertoire racine du projet (ou dans n'importe quel répertoire parent). Ensuite, nvm use
, nvm install
, nvm exec
, nvm run
et nvm which
utiliseront la version spécifiée dans le fichier .nvmrc
si aucune version n'est fournie sur la ligne de commande.
Par exemple, pour définir par défaut nvm sur la dernière version 5.9, la dernière version LTS ou la dernière version de nœud pour le répertoire actuel :
$ écho "5.9" > .nvmrc $ echo "lts/*" > .nvmrc # pour utiliser par défaut la dernière version LTS$ echo "node" > .nvmrc # pour utiliser par défaut la dernière version
[NB : ces exemples supposent une version shell de echo
compatible POSIX. Si vous utilisez un environnement de développement Windows cmd
, par exemple, le fichier .nvmrc
est utilisé pour configurer un déploiement Linux à distance, alors gardez à l'esprit que les "
s seront copiés menant à un fichier non valide. Supprimez-les.]
Ensuite, lorsque vous exécutez nvm, utilisez :
$ utilisation de nvm Trouvé '/path/to/project/.nvmrc' avec la version <5.9>Maintenant en utilisant le nœud v5.9.1 (npm v3.7.3)
L'exécution de nvm install basculera également vers la version correcte, mais si la version correcte du nœud n'est pas déjà installée, il l'installera pour vous.
$ installation nvm Trouvé '/path/to/project/.nvmrc' avec la version <5.9>Téléchargement et installation du nœud v5.9.1... Téléchargement https://nodejs.org/dist/v5.9.1/node-v5.9.1-linux-x64.tar.xz...########### ################################################# ####################### 100,0 % Calcul de la somme de contrôle avec sha256sum Les sommes de contrôle correspondent ! Maintenant en utilisant le nœud v5.9.1 (npm v3.7.3)
nvm use
et. al. parcourra la structure des répertoires vers le haut à partir du répertoire actuel à la recherche du fichier .nvmrc
. En d’autres termes, exécuter nvm use
et. al. dans n'importe quel sous-répertoire d'un répertoire avec un .nvmrc
entraînera l'utilisation de ce .nvmrc
.
Le contenu d'un fichier .nvmrc
doit contenir précisément une <version>
(comme décrit par nvm --help
) suivie d'une nouvelle ligne. Les fichiers .nvmrc
peuvent également contenir des commentaires. Le délimiteur de commentaire est #
, et celui-ci et tout texte qui le suit, ainsi que les lignes vides et les espaces blancs de début et de fin, seront ignorés lors de l'analyse.
Les paires clé/valeur utilisant =
sont également autorisées et ignorées, mais sont réservées pour une utilisation future et peuvent provoquer des erreurs de validation à l'avenir.
Exécutez npx nvmrc
pour valider un fichier .nvmrc
. Si les résultats de cet outil ne sont pas d'accord avec nvm, l'un ou l'autre a un bug - veuillez signaler un problème.
Vous pouvez utiliser avn
pour vous intégrer profondément dans votre shell et appeler automatiquement nvm
lors du changement de répertoire. avn
n'est pas pris en charge par les responsables de nvm
. Veuillez signaler les problèmes à l'équipe avn
.
Vous pouvez également utiliser nvshim
pour caler les bacs node
, npm
et npx
afin d'utiliser automatiquement la configuration nvm
dans le répertoire actuel. nvshim
n'est pas pris en charge par les responsables nvm
. Veuillez signaler les problèmes à l'équipe nvshim
.
Si vous préférez une solution plus légère, les recettes ci-dessous ont été proposées par les utilisateurs nvm
. Ils ne sont pas pris en charge par les responsables nvm
. Nous acceptons cependant les pull request pour plus d’exemples.
nvm use
automatiquement dans un répertoire avec un fichier .nvmrc
Dans votre profil ( ~/.bash_profile
, ~/.zshrc
, ~/.profile
ou ~/.bashrc
), ajoutez ce qui suit à nvm use
chaque fois que vous entrez dans un nouveau répertoire :
Mettez ce qui suit à la fin de votre $HOME/.bashrc
:
cdnvm() { commande cd "$@" || retourner $? nvm_path="$(nvm_find_up .nvmrc | command tr -d 'n')" # S'il n'y a pas de fichier .nvmrc, utilisez la version nvm par défaut si [[ ! $nvm_path = *[^[:space:]]* ]]; puis déclarez default_version default_version="$(nvm version default)" # S'il n'y a pas de version par défaut, définissez-la sur `node` # Cela utilisera la dernière version sur votre machine si [ $default_version = 'N/A' ]; alors Nœud par défaut d'alias NVM default_version=$(nvm version default) fi # Si la version actuelle n'est pas la version par défaut, configurez-la pour utiliser la version par défaut if [ "$(nvm current)" != "${default_version}" ]; alors nvm utilise fi elif par défaut [[ -s "${nvm_path}/.nvmrc" && -r "${nvm_path}/.nvmrc" ]]; puis déclarez nvm_version nvm_version=$(<"${nvm_path}"/.nvmrc) déclarer localement_resolved_nvm_version # `nvm ls` vérifiera toutes les versions disponibles localement # S'il existe plusieurs versions correspondantes, prenez la dernière # Supprimez les `->` et ` *` caractères et espaces # `locally_resolved_nvm_version` sera `N/A` si aucune version locale n'est trouvée localement_resolved_nvm_version=$(nvm ls --no-colors "${nvm_version}" | command tail -1 | command tr -d '->*' | command tr -d '[:space:]') # Si c'est le cas pas déjà installé, installez-le # `nvm install` utilisera implicitement la version nouvellement installée si [ "${locally_resolved_nvm_version}" = 'N / A' ]; alors nvm installe "${nvm_version}" ; elif [ "$(nvm actuel)" != "${locally_resolved_nvm_version}" ]; alors nvm utilise "${nvm_version}" ; fi fi}alias cd='cdnvm'cdnvm "$PWD" || sortie
Cet alias rechercherait « vers le haut » dans votre répertoire actuel afin de détecter un fichier .nvmrc
. S'il le trouve, il passera à cette version ; sinon, il utilisera la version par défaut.
Cette fonction shell s'installera (si nécessaire) et nvm use
la version de nœud spécifiée lorsqu'un .nvmrc
est trouvé, et nvm use default
dans le cas contraire.
Mettez ceci dans votre $HOME/.zshrc
pour appeler nvm use
automatiquement chaque fois que vous entrez dans un répertoire contenant un fichier .nvmrc
avec une chaîne indiquant à nvm quel nœud use
:
# placez-le après l'initialisation de NVM !autoload -U add-zsh-hookload-nvmrc() { local nvmrc_path nvmrc_path="$(nvm_find_nvmrc)" if [ -n "$nvmrc_path" ]; puis local nvmrc_node_version nvmrc_node_version=$(version nvm "$(cat "${nvmrc_path}")") if [ "$nvmrc_node_version" = "N/A" ]; alors nvm install elif [ "$nvmrc_node_version" != "$(version nvm)" ]; alors nvm utilise fi elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(version nvm)" != "$(version nvm par défaut)" ]; puis faites écho "Revenir à la version par défaut de NVM" nvm utilise fi par défaut} ajouter-zsh-hook chpwd charger-nvmrc charger-nvmrc
Cela nécessite que vous ayez installé des basses.
# ~/.config/fish/functions/nvm.fishfunction nvm source de basse ~/.nvm/nvm.sh --no-use ';' nvm $argvend# ~/.config/fish/functions/nvm_find_nvmrc.fishfunction nvm_find_nvmrc source de basse ~/.nvm/nvm.sh --no-use ';' nvm_find_nvmrcend# ~/.config/fish/functions/load_nvm.fishfunction load_nvm --on-variable="PWD" set -l default_node_version (version nvm par défaut) set -l node_version (version nvm) set -l nvmrc_path (nvm_find_nvmrc) si test -n "$nvmrc_path" ensemble -l nvmrc_node_version (version nvm (cat $nvmrc_path)) si test "$nvmrc_node_version" = "N/A" nvm install (cat $nvmrc_path) sinon si test "$nvmrc_node_version" != "$node_version" nvm utilise $nvmrc_node_version end else if test "$node_version" != "$default_node_version" echo "Revenir à la version par défaut du nœud" nvm utilise l'endend par défaut# ~/.config/fish/config.fish# Vous devez l'appeler lors de l'initialisation ou l'écoute du changement de répertoire ne fonctionnera pas workload_nvm > /dev/stderr
Les tests sont rédigés dans Urchin. Installez Urchin (et d'autres dépendances) comme suit :
npm install
Il existe des tests lents et des tests rapides. Les tests lents font des choses comme installer le nœud et vérifier que les bonnes versions sont utilisées. Les tests rapides simulent cela pour tester des choses comme les alias et la désinstallation. Depuis la racine du dépôt nvm git, exécutez les tests rapides comme ceci :
npm run test/fast
Exécutez les tests lents comme ceci :
npm run test/slow
Exécutez tous les tests comme ceci :
npm test
Nota bene : évitez d'exécuter nvm pendant l'exécution des tests.
nvm expose les variables d'environnement suivantes :
NVM_DIR
- répertoire d'installation de nvm.
NVM_BIN
- où les packages node, npm et globaux pour la version active du node sont installés.
NVM_INC
- répertoire de fichiers d'inclusion du nœud (utile pour créer des modules complémentaires C/C++ pour le nœud).
NVM_CD_FLAGS
- utilisé pour maintenir la compatibilité avec zsh.
NVM_RC_VERSION
- version du fichier .nvmrc si utilisé.
De plus, nvm modifie PATH
et, le cas échéant, MANPATH
et NODE_PATH
lors du changement de version.
Pour l'activer, vous devez sourcer bash_completion
:
[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion
Placez la ligne de sourcing ci-dessus juste en dessous de la ligne de sourcing pour nvm dans votre profil ( .bashrc
, .bash_profile
).
nvm :
Onglet
$ nvm
alias désactiver la version de désinstallation des packages de réinstallation à distance de la liste d'installation cache exec install-latest-npm ls run unload version-remote liste d'aide actuelle ls-remote unalias utilisé qui
alias NVM :
Onglet alias
$ nvm alias
par défaut iojs lts/* lts/argon lts/bore lts/carbon lts/dubnium lts/nœud erbium stable instable
$ nvm alias my_alias
Onglet
v10.22.0 v12.18.3 v14.8.0
utilisation de NVM :
$ nvm use
l'onglet
my_alias default v10.22.0 v12.18.3 v14.8.0
désinstallation de NVM :
$ nvm uninstall
nvm
my_alias default v10.22.0 v12.18.3 v14.8.0
nvm
rencontrera certains problèmes si vous avez défini des paramètres autres que ceux par défaut. (voir #606) Les éléments suivants sont connus pour causer des problèmes :
À l'intérieur ~/.npmrc
:
préfixe='quelque/chemin'
Variables d'environnement :
$NPM_CONFIG_PREFIX$PREFIX
Paramètres du shell :
définir -e
Afin de fournir les meilleures performances (et d'autres optimisations), nvm téléchargera et installera les binaires précompilés pour Node (et npm) lorsque vous exécuterez nvm install X
. Le projet Node compile, teste et héberge/fournit ces binaires précompilés qui sont conçus pour les distributions Linux grand public/traditionnelles (telles que Debian, Ubuntu, CentOS, RedHat et al).
Alpine Linux, contrairement aux distributions Linux grand public/traditionnelles, est basé sur BusyBox, une distribution Linux très compacte (~ 5 Mo). BusyBox (et donc Alpine Linux) utilise une pile C/C++ différente de la plupart des distributions Linux grand public/traditionnelles - musl. Cela rend les programmes binaires conçus pour un tel courant dominant/traditionnel incompatible avec Alpine Linux, nous ne pouvons donc pas simplement nvm install X
sur Alpine Linux et nous attendre à ce que le binaire téléchargé fonctionne correctement - vous verrez probablement des erreurs "... n'existe pas" si vous essaye ça.
Il existe un indicateur -s
pour nvm install
qui demande à nvm de télécharger la source du nœud et de la compiler localement.
Si l'installation de nvm sur Alpine Linux est toujours ce que vous voulez ou devez faire, vous devriez pouvoir y parvenir en exécutant ce qui suit à partir de votre shell Alpine Linux, en fonction de la version que vous utilisez :
apk add -U curl bash ca-certificates openssl ncurses coreutils python3 make gcc g++ libgcc linux-headers grep util-linux binutils findutils curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | frapper
apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers grep util-linux binutils findutils curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | frapper
Remarque : Alpine 3.5 ne peut installer que les versions NodeJS jusqu'à la v6.9.5, Alpine 3.6 ne peut installer que les versions jusqu'à la v6.10.3, Alpine 3.7 installe les versions jusqu'à la v8.9.3, Alpine 3.8 installe les versions jusqu'à la v8.14.0, Alpine 3.9 installe versions jusqu'à v10.19.0, Alpine 3.10 installe les versions jusqu'à v10.24.1, Alpine 3.11 installe les versions jusqu'à v12.22.6, Alpine 3.12 installe les versions jusqu'à v12.22.12, Alpine 3.13 et 3.14 installent les versions jusqu'à v14.20.0, Alpine 3.15 et 3.16 installent les versions jusqu'à v16.16.0 ( ce sont toutes des versions sur le branche principale ). Alpine 3.5 - 3.12 nécessitait le package python2
pour construire NodeJS, car ce sont des versions plus anciennes à construire. Alpine 3.13+ nécessite python3
pour créer avec succès des versions NodeJS plus récentes, mais vous pouvez utiliser python2
avec Alpine 3.13+ si vous devez créer des versions de nœud prises en charge dans Alpine 3.5 - 3.15, il vous suffit de spécifier dans quelle version de NodeJS vous devez installer le script d'installation du package.
Le projet Node a un certain désir mais aucun plan concret (en raison des frais généraux de construction, de test et de support) pour proposer des binaires compatibles Alpine.
Comme alternative potentielle, @mhart (un contributeur de Node) propose des images Docker pour Alpine Linux avec Node et éventuellement npm, préinstallées.
Pour supprimer nvm
manuellement, exécutez ce qui suit :
Tout d'abord, utilisez nvm unload
pour supprimer la commande nvm de votre session de terminal et supprimez le répertoire d'installation :
$ nvm_dir="${NVM_DIR:-~/.nvm}"$ nvm déchargement $ rm -rf "$nvm_dir"
Modifiez ~/.bashrc
(ou une autre configuration de ressources shell) et supprimez les lignes ci-dessous :
export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # Ceci charge nvm[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion
Pour faciliter le travail du développement et des tests, nous avons un dockerfile pour l'utilisation du développement, qui est basé sur l'image de base Ubuntu 18.04, préparée avec des outils essentiels et utiles pour le développement nvm
, pour créer l'image docker de l'environnement, exécutez la commande docker à La racine du référentiel nvm
:
$ docker build -t nvm-dev.
Cela emballera votre référentiel NVM actuel avec notre environnement de développement prédéfini dans une image Docker nommée nvm-dev
, une fois qu'elle est construite avec succès, validez votre image via docker images
:
$ images docker Taille de la balise du référentiel NVM-DEV Dernier 9CA4C57A97D8 il y a 7 jours 650 Mo
Si vous n'avez aucun message d'erreur, vous pouvez maintenant facilement vous impliquer:
$ docker run -h nvm-dev -it nvm-dev nvm @ nvm-dev: ~ / .nvm $
Veuillez noter qu'il faudra environ 8 minutes pour construire l'image et que la taille de l'image serait d'environ 650 Mo, donc elle ne convient pas à l'utilisation de la production.
Pour plus d'informations et de documentation sur Docker, veuillez vous référer à son site officiel:
https://www.docker.com/
https://docs.docker.com/
Si vous essayez d'installer une version de nœud et que l'installation échoue, assurez-vous d'exécuter nvm cache clear
pour supprimer les téléchargements de nœuds mis en cache, ou vous pourriez obtenir une erreur comme ce qui suit:
Curl: (33) Le serveur HTTP ne semble pas prendre en charge les gammes d'octets. Ne peut pas reprendre.
Où est mon sudo node
? Découvrez # 43
Après la version V0.8.6 du nœud, NVM essaie d'installer à partir de packages binaires. Mais dans certains systèmes, les forfaits binaires officiels ne fonctionnent pas en raison de l'incompatibilité des LIB partagés. Dans de tels cas, utilisez l'option -s
pour forcer l'installation à partir de la source:
NVM Install -S 0,8.6
Si la définition de l'alias default
n'établit pas la version de nœud dans les nouveaux shells (c'est-à-dire system
courant nvm current
), assurez-vous que le PATH
du nœud du système est défini avant la ligne source nvm.sh
dans votre profil de shell (voir # 658)
Version du nœud NVM introuvable dans VIM Shell
Si vous définissez la version Node sur une version autre que votre version de noeud système nvm use 6.2.1
et ouvrez VIM et exécutez :!node -v
vous devriez voir v6.2.1
Si vous voyez votre version système v0.12.7
. Vous devez courir:
sudo chmod ugo-x / usr / libexec / path_helper
En savoir plus sur cette question dans DotPhiles / Dotzsh.
NVM n'est pas compatible avec l'option de configuration NPM "Prefix"
Certaines solutions pour ce problème peuvent être trouvées ici
Il y a un autre cas de bord qui provoque ce problème, et c'est un décalage entre le chemin d' $HOME
et le nom réel du répertoire personnel de l'utilisateur .
Vous devez vous assurer que le nom du répertoire utilisateur dans $HOME
et le nom du répertoire utilisateur que vous verriez en exécutant ls /Users/
sont capitalisés de la même manière (voir ce problème).
Pour modifier le répertoire utilisateur et / ou le nom de compte, suivez les instructions ici
Homebrew rend les répertoires Zsh non sécurisés
Zsh Compinit: répertoires insécurisés, exécutez Compaudit pour la liste. Ignorez les répertoires non sécurisés et continuez [y] ou abandonnez la compine [n]? oui
Homebrew provoque des répertoires insécurisés comme /usr/local/share/zsh/site-functions
et /usr/local/share/zsh
. Ce n'est pas un problème nvm
- c'est un problème de homebrew. Reportez-vous ici pour certaines solutions liées au problème.
Mac avec des puces en silicium Apple
Une prise en charge expérimentale de l'architecture de puce en silicium Apple a été ajoutée dans Node.js v15.3 et un support complet a été ajouté dans V16.0. Pour cette raison, si vous essayez d'installer des versions plus anciennes de Node comme d'habitude, vous ressentirez probablement des erreurs de compilation lors de l'installation des erreurs de nœud ou de maternité lors de l'exécution de votre code.
Donc, si vous souhaitez exécuter une version avant V16.0 sur un Apple Silicon Mac, il peut être préférable de compiler le nœud ciblant l'architecture Intel x86_64
afin que Rosetta 2 puisse traduire les instructions de processeur x86_64
aux instructions d'Apple Silicon basées sur ARM. Voici ce que vous devrez faire:
Installez Rosetta, si vous ne l'avez pas déjà fait
$ logicielupdate - install-rosetta
Vous vous demandez peut-être: "Comment mon Apple Silicon Mac connaîtra-t-il pour utiliser Rosetta pour une version de nœud compilée pour une puce Intel?". Si un exécutable ne contient que des instructions Intel, MacOS utilisera automatiquement Rosetta pour traduire les instructions.
Ouvrez une coquille qui fonctionne à l'aide de Rosetta
$ arch -x86_64 zsh
Remarque: Cette même chose peut également être accomplie en trouvant l'application Terminal ou Iter dans Finder, cliquer avec le bouton droit, sélectionner "Get Info", puis vérifier la case intitulée "Ouvrir à l'aide de Rosetta".
Remarque: Cette session de terminal fonctionne désormais en zsh
. Si zsh
n'est pas le shell que vous utilisez généralement, nvm
peut ne pas être source
automatiquement comme il est probablement pour votre shell habituel via vos fichiers à points. Si tel est le cas, assurez-vous de trouver nvm
.
$ source "$ {nvm_dir} /nvm.sh"
Installez la version ancienne de Node qui vous intéresse. Utilisons le 12.22.1 comme exemple. Cela va récupérer le code source du nœud et le compiler, ce qui prendra plusieurs minutes.
$ nvm install v12.22.1 --shared-zlib
Remarque: vous êtes probablement curieux de savoir pourquoi --shared-zlib
est inclus. Il y a un bogue dans les versions récentes du compilateur System clang
d'Apple. Si l'une de ces versions cassées est installée sur votre système, l'étape ci-dessus réussira probablement même si vous n'avez pas inclus le drapeau --shared-zlib
. Cependant, plus tard, lorsque vous essayez d' npm install
en utilisant votre ancienne version de Node.js, vous verrez des erreurs incorrect data check
. Si vous voulez éviter les tracas possibles de faire face à cela, incluez ce drapeau. Pour plus de détails, consultez ce problème et ce commentaire
Sortez à votre coquille native.
$ exit $ arch ARM64
Remarque: Si vous avez sélectionné la boîte intitulée "Ouvrir à l'aide de Rosetta" plutôt que d'exécuter la commande CLI dans la deuxième étape, vous verrez i386
ici. À moins que vous n'ayez une autre raison de sélectionner cette boîte, vous pouvez le désélectionner maintenant.
Vérifiez que l'architecture est correcte. x64
est l'abréviation de x86_64
, ce que vous voulez voir.
$ node -p process.arch x64
Vous devriez maintenant pouvoir utiliser le nœud comme d'habitude.
Si vous avez rencontré cette erreur sur WSL-2:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | frapper % Total% reçu% xferd vitesse moyenne du temps de temps courant Dload Téléchargez la vitesse gauche dépensée totale 0 0 0 0 0 0 0 0 -: -: - 0:00:09 -: -: - 0curl: (6) n'a pas pu résoudre l'hôte: brut.githubusercontent.com
Cela peut être dû à votre antivirus, à votre VPN ou à d'autres raisons.
Où vous pouvez ping 8.8.8.8
pendant que vous ne pouvez pas ping google.com
Cela pourrait simplement être résolu en exécutant cela dans votre répertoire racine:
sudo rm /etc/resolv.conf sudo bash -c 'echo "namesserver 8.8.8.8"> /etc/resolv.conf'sudo bash -c' echo "[network]"> /etc/wsl.conf'sudo bash -c 'echo "generareresolvconf = false" >> /etc/wsl.conf'sudo chattr + i /etc/resolv.conf
Cela supprime votre fichier resolv.conf
généré automatiquement lorsque vous exécutez WSL, crée un nouveau fichier et met nameserver 8.8.8.8
, puis crée un fichier wsl.conf
et ajoute [network]
et generateResolveConf = false
pour empêcher la génération automatique de celle-ci de cela déposer.
Vous pouvez vérifier le contenu du fichier en exécutant:
chat /etc/resolv.conf
Actuellement, le seul mainteneur est @ljharb - plus de mainteneurs sont les bienvenus, et nous espérons ajouter des gens à l'équipe au fil du temps. La gouvernance sera réévaluée à mesure que le projet évolue.
Seule la dernière version (V0.40.1 pour le moment) est prise en charge.
Si vous n'êtes pas en mesure de mettre à jour la dernière version de nvm
, nos partenaires fournissent des correctifs de sécurité commerciale pour toutes les versions non soutenues:
Hérodevs Soutien sans fin
Voir Licence.Md.
Copyright OpenJS Foundation et nvm
Contributeurs. Tous droits réservés. La Fondation OpenJS a enregistré les marques et utilise des marques. Pour une liste des marques de la Fondation OpenJS, veuillez consulter notre politique de marque et notre liste de marque. Node.js est une marque de commerce de Joyent, Inc. et est utilisé avec sa permission. Les marques et les logos non indiqués sur la liste des marques OpenJS Foundation sont des marques de commerce ou de commerce de leurs détenteurs respectifs. L'utilisation d'eux n'implique aucune affiliation avec eux ou leur approbation.
La Fondation OpenJS | Conditions d'utilisation | Politique de confidentialité | Dégustations de la Fondation OpenJS | Politique de marque | Liste des marques | Politique en matière de cookies