Introducción
Acerca de
Instalación y actualización
Notas adicionales
Solución de problemas en Linux
Solución de problemas en macOS
ansible
Instalar y actualizar script
Verificar la instalación
Notas importantes
Instalación de Git
Instalación manual
Actualización manual
Uso
Llamar nvm use
automáticamente en un directorio con un archivo .nvmrc
intento
zsh
pez
Pasar el encabezado de autorización al espejo
Colores personalizados persistentes
Suprimir la salida coloreada
Soporte a largo plazo
Migrar paquetes globales durante la instalación
Paquetes globales predeterminados del archivo durante la instalación
io.js
Versión del sistema del nodo
Versiones de listado
Configuración de colores personalizados
Restaurando la RUTA
Establecer la versión predeterminada del nodo
Utilice un espejo de binarios de nodos
.nvmrc
Integración más profunda de Shell
Ejecución de pruebas
Variables ambientales
Finalización del golpe
Uso
Problemas de compatibilidad
Instalación de nvm en Alpine Linux
Linux alpino 3.13+
Linux alpino 3.5 - 3.12
Desinstalación/eliminación
Desinstalación manual
Docker para el entorno de desarrollo
Problemas
Solución de problemas de macOS
Solución de problemas de WSL
mantenedores
Soporte de Proyecto
Soporte empresarial
Licencia
Aviso de derechos de autor
nvm
le permite instalar y utilizar rápidamente diferentes versiones de node a través de la línea de comando.
Ejemplo:
$ nvm uso 16 Ahora usando el nodo v16.9.1 (npm v7.21.1) $ nodo -v v16.9.1 $ nvm uso 14 Ahora usando el nodo v14.18.0 (npm v6.14.15) $ nodo -v v14.18.0 $ nvm instalar 12 Ahora usando el nodo v12.22.6 (npm v6.14.5) $ nodo -v v12.22.6
¡Así de simple!
nvm es un administrador de versiones para node.js, diseñado para instalarse por usuario e invocarse por shell. nvm
funciona en cualquier shell compatible con POSIX (sh, dash, ksh, zsh, bash), en particular en estas plataformas: Unix, macOS y Windows WSL.
Para instalar o actualizar nvm, debe ejecutar el script de instalación. Para hacerlo, puede descargar y ejecutar el script manualmente o usar el siguiente comando cURL o Wget:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | intento
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | intento
Al ejecutar cualquiera de los comandos anteriores, se descarga un script y lo ejecuta. El script clona el repositorio nvm en ~/.nvm
e intenta agregar las líneas fuente del fragmento siguiente al archivo de perfil correcto ( ~/.bash_profile
, ~/.zshrc
, ~/.profile
o ~/.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" # Esto carga nvm
Si la variable de entorno $XDG_CONFIG_HOME
está presente, colocará los archivos nvm
allí.
Puede agregar --no-use
al final del script anterior (... nvm.sh --no-use
) para posponer el uso de nvm
hasta que lo use
manualmente.
Puede personalizar el origen, el directorio, el perfil y la versión de la instalación utilizando las variables NVM_SOURCE
, NVM_DIR
, PROFILE
y NODE_VERSION
. Por ejemplo: curl ... | NVM_DIR="path/to/nvm"
. Asegúrese de que NVM_DIR
no contenga una barra diagonal.
El instalador puede usar git
, curl
o wget
para descargar nvm
, el que esté disponible.
Puede indicarle al instalador que no edite su configuración de shell (por ejemplo, si ya obtiene completaciones a través de un complemento zsh nvm) configurando PROFILE=/dev/null
antes de ejecutar el script install.sh
. Aquí hay un ejemplo de comando de una línea para hacer eso: PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash'
En Linux, después de ejecutar el script de instalación, si obtiene nvm: command not found
o no ve comentarios de su terminal después de escribir command -v nvm
, simplemente cierre su terminal actual, abra una nueva terminal e intente verificar nuevamente. Alternativamente, puede ejecutar los siguientes comandos para los diferentes shells en la línea de comandos:
bash : source ~/.bashrc
zsh : source ~/.zshrc
ksh : . ~/.profile
Estos deberían captar el comando nvm
.
Desde OS X 10.9, /usr/bin/git
ha sido preestablecido por las herramientas de línea de comandos de Xcode, lo que significa que no podemos detectar correctamente si Git está instalado o no. Debe instalar manualmente las herramientas de línea de comandos de Xcode antes de ejecutar el script de instalación; de lo contrario, fallará. (ver #1782)
Si obtiene nvm: command not found
después de ejecutar el script de instalación, uno de los siguientes podría ser el motivo:
Desde macOS 10.15, el shell predeterminado es zsh
y nvm buscará .zshrc
para actualizar, no hay ninguno instalado de forma predeterminada. Cree uno con touch ~/.zshrc
y ejecute el script de instalación nuevamente.
Si usa bash, el shell predeterminado anterior, es posible que su sistema no tenga archivos .bash_profile
o .bashrc
donde esté configurado el comando. Cree uno de ellos con touch ~/.bash_profile
o touch ~/.bashrc
y ejecute el script de instalación nuevamente. Entonces, corre . ~/.bash_profile
o . ~/.bashrc
para seleccionar el comando nvm
.
Ya has usado bash
anteriormente, pero tienes zsh
instalado. Debe agregar manualmente estas líneas a ~/.zshrc
y ejecutar . ~/.zshrc
.
Es posible que deba reiniciar su instancia de terminal o ejecutar . ~/.nvm/nvm.sh
. Reiniciar su terminal/abrir una nueva pestaña/ventana, o ejecutar el comando fuente cargará el comando y la nueva configuración.
Si lo anterior no ayudó, es posible que deba reiniciar su instancia de terminal. Intente abrir una nueva pestaña/ventana en su terminal y vuelva a intentarlo.
Si lo anterior no soluciona el problema, puede intentar lo siguiente:
Si usa bash, es posible que su .bash_profile
(o ~/.profile
) no obtenga su ~/.bashrc
correctamente. Puede solucionar este problema agregando source ~/<your_profile_file>
o siguiendo el siguiente paso a continuación.
Intente agregar el fragmento de la sección de instalación, que encuentra el directorio nvm correcto y carga nvm, a su perfil habitual ( ~/.bash_profile
, ~/.zshrc
, ~/.profile
o ~/.bashrc
).
Para obtener más información sobre este problema y posibles soluciones, consulte aquí
Nota Para Mac con el chip Apple Silicon, node comenzó a ofrecer paquetes arm64 arch Darwin desde v16.0.0 y compatibilidad experimental con arm64 al compilar desde el código fuente desde v14.17.0. Si tiene problemas para instalar node usando nvm
, es posible que desee actualizar a una de esas versiones o posterior.
Puedes usar una tarea:
- nombre: Instalar nvm ansible.builtin.shell: > curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | argumentos bash: crea: "{{ ansible_env.HOME }}/.nvm/nvm.sh"
Para verificar que nvm se haya instalado, haga:
comando -v nvm
que debería generar nvm
si la instalación fue exitosa. Tenga en cuenta que which nvm
no funcionará, ya que nvm
es una función de shell de origen, no un binario ejecutable.
Nota: En Linux, después de ejecutar el script de instalación, si obtiene nvm: command not found
o no ve comentarios de su terminal después de escribir command -v nvm
, simplemente cierre su terminal actual, abra una nueva terminal e intente verificar nuevamente.
Si está ejecutando un sistema sin binarios preempaquetados disponibles, lo que significa que va a instalar node o io.js desde su código fuente, debe asegurarse de que su sistema tenga un compilador de C++. Para OS X, Xcode funcionará, para GNU/Linux basado en Debian/Ubuntu, los paquetes build-essential
y libssl-dev
funcionan.
Nota: nvm
también es compatible con Windows en algunos casos. Debería funcionar a través de WSL (Subsistema de Windows para Linux) dependiendo de la versión de WSL. También debería funcionar con GitBash (MSYS) o Cygwin. Por lo demás, para Windows existen algunas alternativas que no apoyamos ni desarrollamos:
nvm-ventanas
nodista
nvs
Nota: nvm
tampoco admite Fish (consulte el n.º 303). Existen alternativas que no apoyamos ni desarrollamos:
bass le permite utilizar utilidades escritas para Bash en fish shell
fast-nvm-fish solo funciona con números de versión (no alias) pero no ralentiza significativamente el inicio del shell
plugin-nvm complemento para Oh My Fish, que hace que nvm y sus terminaciones estén disponibles en fish shell
fnm: administrador de versiones para peces basado en pescadores
fish-nvm: envoltorio de nvm para pescado, retrasa el suministro de nvm hasta que realmente se utiliza.
Nota: Todavía tenemos algunos problemas con FreeBSD, porque no existe un binario oficial prediseñado para FreeBSD y la compilación desde el código fuente puede necesitar parches; ver el ticket de emisión:
[#900] Es posible que sea necesario parchear el nodo [Error] en FreeBSD
nodejs/nodo#3716
Nota: En OS X, si no tiene Xcode instalado y no desea descargar el archivo de ~4,3 GB, puede instalar las Command Line Tools
. Puedes consultar esta publicación de blog sobre cómo hacerlo:
Cómo instalar herramientas de línea de comandos en OS X Mavericks y Yosemite (sin Xcode)
Nota: En OS X, si tiene instalado un nodo de "sistema" y desea instalar módulos globalmente, tenga en cuenta que:
Cuando usa nvm
no necesita sudo
para instalar globalmente un módulo con npm -g
, por lo que en lugar de hacer sudo npm install -g grunt
, haga npm install -g grunt
Si tiene un archivo ~/.npmrc
, asegúrese de que no contenga ninguna configuración prefix
(lo cual no es compatible con nvm
).
Puede (¿pero no debería?) mantener la instalación anterior del nodo "sistema", pero nvm
solo estará disponible para su cuenta de usuario (la que se usó para instalar nvm). Esto podría causar discrepancias en las versiones, ya que otros usuarios usarán /usr/local/lib/node_modules/*
versus su cuenta de usuario usando ~/.nvm/versions/node/vX.XX/lib/node_modules/*
No se admite la instalación casera. Si tiene problemas con nvm
instalado en homebrew, brew uninstall
e instálelo siguiendo las instrucciones a continuación, antes de presentar un problema.
Nota: Si está utilizando zsh
puede instalar fácilmente nvm
como complemento de zsh. Instale zsh-nvm
y ejecute nvm upgrade
para actualizar.
Nota: Las versiones de Git anteriores a v1.7 pueden enfrentar un problema al clonar la fuente nvm
de GitHub a través del protocolo https, y también existe un comportamiento diferente de git anterior a v1.6, y git anterior a v1.17.10 no puede clonar etiquetas, por lo que el mínimo La versión de git requerida es v1.7.10. Si está interesado en el problema que mencionamos aquí, consulte el artículo sobre errores de clonación HTTPS de GitHub.
Si tiene git
instalado (requiere git v1.7.10+):
clona este repositorio en la raíz de tu perfil de usuario
cd ~/
desde cualquier lugar y luego git clone https://github.com/nvm-sh/nvm.git .nvm
cd ~/.nvm
y consulte la última versión con git checkout v0.40.1
active nvm
obteniendolo de su shell: . ./nvm.sh
Ahora agregue estas líneas a su archivo ~/.bashrc
, ~/.profile
o ~/.zshrc
para que se obtenga automáticamente al iniciar sesión: (es posible que deba agregar más de uno de los archivos anteriores)
exportar NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # Esto carga nvm[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # Esto carga nvm bash_completion
Para una instalación completamente manual, ejecute las siguientes líneas para clonar primero el repositorio nvm
en $HOME/.nvm
y luego cargar nvm
:
exportar NVM_DIR="$HOME/.nvm" && ( clon de git https://github.com/nvm-sh/nvm.git "$NVM_DIR" cd "$NVM_DIR" git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`) && . "$NVM_DIR/nvm.sh"
Ahora agregue estas líneas a su archivo ~/.bashrc
, ~/.profile
o ~/.zshrc
para que se obtenga automáticamente al iniciar sesión: (es posible que deba agregar más de uno de los archivos anteriores)
exportar NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # Esto carga nvm[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # Esto carga nvm bash_completion
Para actualización manual con git
(requiere git v1.7.10+):
cambiar al $NVM_DIR
desplegar los últimos cambios
echa un vistazo a la última versión
activar la nueva versión
( CD "$NVM_DIR" git fetch --etiquetas origen git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`) && . "$NVM_DIR/nvm.sh"
Para descargar, compilar e instalar la última versión de node, haga esto:
nvm install node # "node" es un alias para la última versión
Para instalar una versión específica de nodo:
nvm instala 14.7.0 # o 16.3.0, 12.22.1, etc.
Para establecer un alias:
nvm alias my_alias v14.4.0
Asegúrese de que su alias no contenga espacios ni barras.
La primera versión instalada se convierte en la predeterminada. Los nuevos shells comenzarán con la versión predeterminada del nodo (por ejemplo, nvm alias default
).
Puede enumerar las versiones disponibles usando ls-remote
:
nvm ls-remoto
Y luego, en cualquier shell nuevo, simplemente use la versión instalada:
nodo de uso nvm
O simplemente puedes ejecutarlo:
nvm ejecutar nodo --versión
O puede ejecutar cualquier comando arbitrario en un subshell con la versión deseada del nodo:
nvm exec 4.2 nodo --versión
También puede obtener la ruta al ejecutable donde se instaló:
nvm que 12.22
En lugar de un puntero de versión como "14.7" o "16.3" o "12.22.1", puede usar los siguientes alias predeterminados especiales con nvm install
, nvm use
, nvm run
, nvm exec
, nvm which
, etc.:
node
: esto instala la última versión de node
iojs
: esto instala la última versión de io.js
stable
: este alias está en desuso y solo se aplica realmente al node
v0.12
y versiones anteriores. Actualmente, este es un alias para node
.
unstable
: este alias apunta al node
v0.11
: la última versión del nodo "inestable", desde posterior a la 1.0, todas las versiones de los nodos son estables. (en SemVer, las versiones comunican rotura, no estabilidad).
El nodo tiene un cronograma para soporte a largo plazo (LTS). Puede hacer referencia a las versiones de LTS en alias y archivos .nvmrc
con la notación lts/*
para el último LTS y lts/argon
para las versiones de LTS de la línea "argon", por ejemplo. . Además, los siguientes comandos admiten argumentos 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
Cada vez que su copia local de nvm
se conecte a https://nodejs.org, volverá a crear los alias locales apropiados para todas las líneas LTS disponibles. Estos alias (almacenados en $NVM_DIR/alias/lts
) son administrados por nvm
, y no debe modificar, eliminar ni crear estos archivos; espere que sus cambios se deshagan y que la interferencia con estos archivos cause errores que probablemente no ser apoyado.
Para obtener la última versión LTS de node y migrar sus paquetes instalados existentes, use
instalación de nvm --reinstall-packages-from=current 'lts/*'
Si desea instalar una nueva versión de Node.js y migrar paquetes npm desde una versión anterior:
nvm install --reinstall-packages-from=nodo nodo
Esto primero utilizará el "nodo de versión nvm" para identificar la versión actual desde la que está migrando los paquetes. Luego resuelve la nueva versión para instalar desde el servidor remoto y la instala. Por último, ejecuta "nvm reinstall-packages" para reinstalar los paquetes npm de su versión anterior de Node a la nueva.
También puedes instalar y migrar paquetes npm desde versiones específicas de Node como esta:
instalación de nvm --reinstall-packages-from=5 6 instalación de nvm --reinstall-packages-from=iojs v4.2
Tenga en cuenta que reinstalar paquetes explícitamente no actualiza la versión de npm ; esto es para garantizar que npm no se actualice accidentalmente a una versión rota para la nueva versión del nodo.
Para actualizar npm al mismo tiempo, agregue el indicador --latest-npm
, así:
instalación de nvm --reinstall-packages-from=default --latest-npm 'lts/*'
o puede ejecutar en cualquier momento el siguiente comando para obtener la última versión de npm compatible en la versión actual del nodo:
instalación de nvm-último-npm
Si ya recibió un error en el sentido de "npm no es compatible con Node.js", deberá (1) volver a una versión de nodo anterior ( nvm ls
y nvm use <your latest _working_ version from the ls>
), (2) elimine la versión del nodo recién creada ( nvm uninstall <your _broken_ version of node from the ls>
), luego (3) vuelva a ejecutar nvm install
con el --latest-npm
bandera.
Si tiene una lista de paquetes predeterminados que desea instalar cada vez que instala una nueva versión, también la admitimos: simplemente agregue los nombres de los paquetes, uno por línea, al archivo $NVM_DIR/default-packages
. Puede agregar cualquier cosa que npm acepte como argumento del paquete en la línea de comando.
# $NVM_DIR/paquetes-predeterminadosrimraf inspección de [email protected] stevemao/pad-izquierdo
Si desea instalar io.js:
nvm instala iojs
Si desea instalar una nueva versión de io.js y migrar paquetes npm desde una versión anterior:
instalación de nvm --reinstall-packages-from=iojs iojs
Las mismas pautas mencionadas para migrar paquetes npm en node se aplican a io.js.
Si desea utilizar la versión de nodo instalada en el sistema, puede utilizar el alias predeterminado especial "sistema":
sistema de uso nvm sistema de ejecución nvm --versión
Si desea ver qué versiones están instaladas:
nvm ls
Si desea ver qué versiones están disponibles para instalar:
nvm ls-remoto
Puede configurar cinco colores que se utilizarán para mostrar información de versión y alias. Estos colores reemplazan los colores predeterminados. Los colores iniciales son: gbyre
Códigos de colores:
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 establecer colores rgBcm
Si desea que los colores personalizados persistan después de finalizar el shell, exporte la variable NVM_COLORS
en su perfil de shell. Por ejemplo, si desea utilizar cian, magenta, verde, rojo negrita y amarillo negrita, agregue la siguiente línea:
exportar NVM_COLORS='cmgRY'
nvm help (or -h or --help)
, nvm ls
, nvm ls-remote
y nvm alias
generalmente producen resultados coloreados. Puede desactivar los colores con la opción --no-colors
(o configurando la variable de entorno TERM=dumb
):
nvm ls --sin colores ayuda de nvm --sin colores TÉRMINO=nvm ls tonto
Para restaurar tu RUTA, puedes desactivarla:
nvm desactivar
Para configurar una versión de Nodo predeterminada para usar en cualquier shell nuevo, use el alias 'default':
nvm alias default node # esto se refiere a la última versión instalada de nodenvm alias default 18 # esto se refiere a la última versión instalada v18.x de nodenvm alias default 18.12 # esto se refiere a la última versión instalada v18.12.x de node
Para usar un espejo de los binarios del nodo, configure $NVM_NODEJS_ORG_MIRROR
:
exportar NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nodo de instalación nvm NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm instalar 4.2
Para usar un espejo de los binarios de io.js, configure $NVM_IOJS_ORG_MIRROR
:
exportar NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm instala iojs-v1.0.3 NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm instala iojs-v1.0.3
nvm use
no creará, de forma predeterminada, un enlace simbólico "actual". Establezca $NVM_SYMLINK_CURRENT
en "true" para habilitar este comportamiento, que a veces resulta útil para los IDE. Tenga en cuenta que el uso de nvm
en varias pestañas del shell con esta variable de entorno habilitada puede provocar condiciones de carrera.
Para pasar un encabezado de Autorización a la URL reflejada, configure $NVM_AUTH_HEADER
NVM_AUTH_HEADER="Token secreto portador" nodo de instalación de nvm
Puede crear un archivo .nvmrc
que contenga un número de versión de nodo (o cualquier otra cadena que nvm
entienda; consulte nvm --help
para obtener más detalles) en el directorio raíz del proyecto (o cualquier directorio principal). Luego, nvm use
, nvm install
, nvm exec
, nvm run
y nvm which
usarán la versión especificada en el archivo .nvmrc
si no se proporciona ninguna versión en la línea de comando.
Por ejemplo, para hacer que nvm tenga por defecto la última versión 5.9, la última versión LTS o la última versión del nodo para el directorio actual:
$ eco "5.9" > .nvmrc $ echo "lts/*" > .nvmrc # para usar de forma predeterminada la última versión LTS$ echo "node" > .nvmrc # para usar de forma predeterminada la última versión
[NB: estos ejemplos asumen una versión shell de echo
compatible con POSIX. Si utiliza un entorno de desarrollo cmd
de Windows, por ejemplo, el archivo .nvmrc
se utiliza para configurar una implementación remota de Linux, tenga en cuenta que los "
s se copiarán y conducirán a un archivo no válido. Elimínelos.]
Luego, cuando ejecutes nvm usa:
$ nvm uso Encontrado '/path/to/project/.nvmrc' con la versión <5.9>Ahora usando el nodo v5.9.1 (npm v3.7.3)
Al ejecutar nvm install también se cambiará a la versión correcta, pero si la versión correcta del nodo aún no está instalada, la instalará por usted.
instalación $ nvm Encontrado '/path/to/project/.nvmrc' con la versión <5.9>Descargando e instalando el nodo v5.9.1... Descargando https://nodejs.org/dist/v5.9.1/node-v5.9.1-linux-x64.tar.xz...########### ################################################## ####################### 100.0%Calcular la suma de comprobación con sha256sum ¡Las sumas de verificación coinciden! Ahora usando el nodo v5.9.1 (npm v3.7.3)
nvm use
et. Alabama. recorrerá la estructura de directorios hacia arriba desde el directorio actual buscando el archivo .nvmrc
. En otras palabras, ejecutar nvm use
et. Alabama. en cualquier subdirectorio de un directorio con un .nvmrc
dará como resultado que se utilice ese .nvmrc
.
El contenido de un archivo .nvmrc
debe contener precisamente una <version>
(como se describe en nvm --help
) seguida de una nueva línea. Los archivos .nvmrc
también pueden tener comentarios. El delimitador de comentarios es #
, y tanto él como cualquier texto posterior, así como las líneas en blanco y los espacios en blanco iniciales y finales, se ignorarán al analizar.
Los pares clave/valor que usan =
también se permiten y se ignoran, pero están reservados para uso futuro y pueden provocar errores de validación en el futuro.
Ejecute npx nvmrc
para validar un archivo .nvmrc
. Si los resultados de esa herramienta no concuerdan con nvm, uno u otro tiene un error; presente un problema.
Puede usar avn
para integrarse profundamente en su shell e invocar automáticamente nvm
al cambiar de directorio. avn
no es compatible con los mantenedores nvm
. Informe los problemas al equipo avn
.
También puede usar nvshim
para ajustar los contenedores node
, npm
y npx
para usar automáticamente la configuración nvm
en el directorio actual. nvshim
no cuenta con el soporte de los mantenedores nvm
. Informe los problemas al equipo nvshim
.
Si prefiere una solución más liviana, las recetas a continuación han sido aportadas por usuarios nvm
. No cuentan con el respaldo de los mantenedores nvm
. Sin embargo, aceptamos solicitudes de extracción para obtener más ejemplos.
nvm use
automáticamente en un directorio con un archivo .nvmrc
En su perfil ( ~/.bash_profile
, ~/.zshrc
, ~/.profile
o ~/.bashrc
), agregue lo siguiente para nvm use
cada vez que ingrese a un nuevo directorio:
Coloque lo siguiente al final de su $HOME/.bashrc
:
cdnvm() { comando cd "$@" || devolver $? nvm_path="$(nvm_find_up .nvmrc | command tr -d 'n')" # Si no hay ningún archivo .nvmrc, use la versión predeterminada de nvm si [[ ! $nvm_path = *[^[:espacio:]]* ]]; luego declara default_version default_version="$(nvm version default)" # Si no hay una versión predeterminada, configúrala en `node` # Esto usará la última versión en tu máquina si [ $default_version = 'N/A' ]; entonces nodo predeterminado de alias nvm default_version=$(nvm version default) fi # Si la versión actual no es la versión predeterminada, configúrela para usar la versión predeterminada if [ "$(nvm current)" != "${default_version}" ]; entonces nvm usa elif fi predeterminado [[ -s "${nvm_path}/.nvmrc" && -r "${nvm_path}/.nvmrc" ]]; luego declara nvm_version nvm_version=$(<"${nvm_path}"/.nvmrc) declara local_resolved_nvm_version # `nvm ls` comprobará todas las versiones disponibles localmente # Si hay varias versiones coincidentes, toma la última # Elimina `->` y ` *` caracteres y espacios # `locally_resolved_nvm_version` será `N/A` si no se encuentran versiones locales local_resolved_nvm_version=$(nvm ls --no-colors "${nvm_version}" | comando tail -1 | comando tr -d '->*' | comando tr -d '[:space:]') # Si es así aún no está instalado, instálelo # `nvm install` usará implícitamente la versión recién instalada si [ "${locally_resolved_nvm_version}" = 'N / A' ]; entonces instalación de nvm "${nvm_version}"; elif [ "$(nvm actual)" != "${locally_resolved_nvm_version}" ]; entonces nvm utiliza "${nvm_version}"; fi fi}alias cd='cdnvm'cdnvm "$PWD" || salida
Este alias buscaría "hacia arriba" desde su directorio actual para detectar un archivo .nvmrc
. Si la encuentra, cambiará a esa versión; de lo contrario, utilizará la versión predeterminada.
Esta función de shell se instalará (si es necesario) y nvm use
la versión de Nodo especificada cuando se encuentre un .nvmrc
, y nvm use default
en caso contrario.
Coloque esto en su $HOME/.zshrc
para llamar nvm use
automáticamente cada vez que ingrese a un directorio que contenga un archivo .nvmrc
con una cadena que le indique a nvm qué nodo use
:
# ¡coloque esto después de la inicialización de nvm! autoload -U add-zsh-hookload-nvmrc() { local nvmrc_path nvmrc_path="$(nvm_find_nvmrc)" si [ -n "$nvmrc_path" ]; luego local nvmrc_node_version nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") if [ "$nvmrc_node_version" = "N/A" ]; entonces nvm install elif [ "$nvmrc_node_version" != "$(versión nvm)" ]; entonces nvm use fi elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(versión de nvm)" != "$(versión predeterminada de nvm)" ]; luego haga eco "Volver a la versión predeterminada de nvm" nvm usa fi predeterminado} agregar-zsh-hook chpwd cargar-nvmrc cargar-nvmrc
Esto requiere que tengas el bajo instalado.
# ~/.config/fish/functions/nvm.fishfunction nvm fuente de bajo ~/.nvm/nvm.sh --no-use ';' nvm $argvend# ~/.config/fish/functions/nvm_find_nvmrc.fishfunction nvm_find_nvmrc fuente de bajo ~/.nvm/nvm.sh --no-use ';' nvm_find_nvmrcend# ~/.config/fish/functions/load_nvm.fishfunction load_nvm --on-variable="PWD" set -l default_node_version (versión predeterminada de nvm) set -l node_version (versión de nvm) set -l nvmrc_path (nvm_find_nvmrc) si es prueba -n "$nvmrc_path" establecer -l nvmrc_node_version (versión nvm (cat $nvmrc_path)) si prueba "$nvmrc_node_version" = "N/A" instalación de nvm (cat $nvmrc_path) si no, prueba "$nvmrc_node_version"! = "$node_version" nvm use $nvmrc_node_version y finalice si no prueba "$node_version" != "$default_node_version" echo "Volviendo a la versión predeterminada del nodo" nvm usa endend# predeterminado ~/.config/fish/config.fish# Debes llamarlo durante la inicialización o escuchar el cambio de directorio no funcionaráload_nvm > /dev/stderr
Las pruebas están escritas en Urchin. Instale Urchin (y otras dependencias) de la siguiente manera:
npm install
Hay pruebas lentas y pruebas rápidas. Las pruebas lentas hacen cosas como instalar el nodo y comprobar que se utilizan las versiones correctas. Las pruebas rápidas fingen esto para probar cosas como alias y desinstalaciones. Desde la raíz del repositorio nvm git, ejecute pruebas rápidas como esta:
npm run test/fast
Ejecute las pruebas lentas como esta:
npm run test/slow
Ejecute todas las pruebas de esta manera:
npm test
Nota bene: Evite ejecutar nvm mientras se ejecutan las pruebas.
nvm expone las siguientes variables de entorno:
NVM_DIR
: directorio de instalación de nvm.
NVM_BIN
: donde se instalan los paquetes globales, npm y nodo para la versión activa del nodo.
NVM_INC
: directorio de archivos de inclusión del nodo (útil para crear complementos C/C++ para el nodo).
NVM_CD_FLAGS
: se utiliza para mantener la compatibilidad con zsh.
NVM_RC_VERSION
: versión del archivo .nvmrc si se utiliza.
Además, nvm modifica PATH
y, si está presente, MANPATH
y NODE_PATH
al cambiar de versión.
Para activarlo, necesita obtener bash_completion
:
[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion
Coloque la línea de abastecimiento anterior justo debajo de la línea de abastecimiento para nvm en su perfil ( .bashrc
, .bash_profile
).
nvm:
Pestaña
$ nvm
alias desactivar lista de instalación-reinstalación remota-paquetes versión de desinstalación cache exec install-latest-npm ls ejecutar descargar versión remota lista de ayuda actual ls-remote unalias uso cual
alias nvm:
Pestaña
$ nvm alias
predeterminado iojs lts/* lts/argón lts/boro lts/carbon lts/dubnium lts/erbio nodo estable inestable
$ nvm alias my_alias
Tab
v10.22.0 v12.18.3 v14.8.0
uso de nvm:
$ nvm use
pestaña
my_alias default v10.22.0 v12.18.3 v14.8.0
desinstalación de nvm:
$ nvm uninstall
pestaña de desinstalación
my_alias default v10.22.0 v12.18.3 v14.8.0
nvm
encontrará algunos problemas si tiene configuradas algunas configuraciones no predeterminadas. (consulte el n.º 606) Se sabe que lo siguiente causa problemas:
Dentro ~/.npmrc
:
prefijo = 'algunos/ruta'
Variables de entorno:
$NPM_CONFIG_PREFIX$PREFIX
Configuración del caparazón:
conjunto -e
Para proporcionar el mejor rendimiento (y otras optimizaciones), nvm descargará e instalará archivos binarios precompilados para Node (y npm) cuando ejecute nvm install X
El proyecto Node compila, prueba y aloja/proporciona estos binarios precompilados que están creados para distribuciones de Linux convencionales/tradicionales (como Debian, Ubuntu, CentOS, RedHat et al).
Alpine Linux, a diferencia de las distribuciones de Linux convencionales/tradicionales, se basa en BusyBox, una distribución de Linux muy compacta (~5 MB). BusyBox (y por lo tanto Alpine Linux) utiliza una pila C/C++ diferente a la mayoría de las distribuciones de Linux convencionales/tradicionales: musl. Esto hace que los programas binarios creados para sistemas convencionales/tradicionales sean incompatibles con Alpine Linux, por lo que no podemos simplemente nvm install X
en Alpine Linux y esperar que el binario descargado se ejecute correctamente; probablemente verá errores "...no existe" si prueba eso.
Hay un indicador -s
para nvm install
que solicita que nvm descargue el código fuente del nodo y lo compile localmente.
Si instalar nvm en Alpine Linux todavía es lo que desea o necesita hacer, debería poder lograrlo ejecutando lo siguiente desde su shell de Alpine Linux, dependiendo de la versión que esté utilizando:
apk agregar -U curl bash ca-certificados 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 | intento
apk agregar -U curl bash ca-certificados 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 | intento
Nota: Alpine 3.5 solo puede instalar versiones de NodeJS hasta v6.9.5, Alpine 3.6 solo puede instalar versiones hasta v6.10.3, Alpine 3.7 instala versiones hasta v8.9.3, Alpine 3.8 instala versiones hasta v8.14.0, Alpine 3.9 instala versiones hasta v10.19.0, Alpine 3.10 instala versiones hasta v10.24.1, Alpine 3.11 instala versiones hasta v12.22.6, Alpine 3.12 instala versiones hasta v12.22.12, Alpine 3.13 y 3.14 instala versiones hasta v14.20.0, Alpine 3.15 y 3.16 instala versiones hasta v16.16.0 ( todas estas son versiones en sucursal principal ). Alpine 3.5 - 3.12 requería el paquete python2
para compilar NodeJS, ya que son versiones anteriores para compilar. Alpine 3.13+ requiere python3
para crear con éxito versiones más nuevas de NodeJS, pero puede usar python2
con Alpine 3.13+ si necesita crear versiones de nodo compatibles con Alpine 3.5 - 3.15, solo necesita especificar en qué versión de NodeJS necesita instalar el script de instalación del paquete.
El proyecto Node tiene cierto deseo, pero no planes concretos (debido a los gastos generales de construcción, pruebas y soporte) de ofrecer binarios compatibles con Alpine.
Como alternativa potencial, @mhart (un colaborador de Node) tiene algunas imágenes de Docker para Alpine Linux con Node y, opcionalmente, npm, preinstaladas.
Para eliminar nvm
manualmente, ejecute lo siguiente:
Primero, use nvm unload
para eliminar el comando nvm de su sesión de terminal y elimine el directorio de instalación:
$ nvm_dir="${NVM_DIR:-~/.nvm}"$ nvm descargar $ rm -rf "$nvm_dir"
Edite ~/.bashrc
(u otra configuración de recursos de shell) y elimine las líneas siguientes:
exportar NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # Esto carga nvm[[ -r $NVM_DIR/bash_completion ]] && . $ Nvm_dir/bash_completion
Para facilitar el desarrollo y las pruebas, tenemos un DockerFile para el uso del desarrollo, que se basa en la imagen base Ubuntu 18.04, preparada con herramientas esenciales y útiles para el desarrollo nvm
, para construir la imagen Docker del entorno, ejecute el comando Docker en La raíz del repositorio nvm
:
$ Docker Build -T NVM -Dev.
Esto empaquetará su repositorio NVM actual con nuestro entorno de desarrollo predefinido en una imagen Docker llamada nvm-dev
, una vez que está construido con éxito, valida su imagen a través de docker images
:
$ Docker Imágenes ID de imagen de etiqueta de repositorio Tamaño creado NVM-DEV ÚLTIMO 9CA4C57A97D8 Hace 7 días 650 MB
Si no recibe un mensaje de error, ahora puede involucrar fácilmente en:
$ docker run -h nvm -dev -it nvm -devel nvm@nvm-dev: ~/.nvm $
Tenga en cuenta que tomará aproximadamente 8 minutos construir la imagen y el tamaño de la imagen sería de aproximadamente 650 MB, por lo que no es adecuado para el uso de la producción.
Para obtener más información y documentación sobre Docker, consulte su sitio web oficial:
https://www.docker.com/
https://docs.docker.com/
Si intenta instalar una versión de nodo y la instalación falla, asegúrese de ejecutar nvm cache clear
para eliminar las descargas de nodos en caché, o puede obtener un error como el siguiente:
Curl: (33) El servidor HTTP no parece admitir rangos de bytes. No puedo reanudar.
¿Dónde está mi sudo node
? Mira #43
Después de la versión V0.8.6 del nodo, NVM intenta instalar desde paquetes binarios. Pero en algunos sistemas, los paquetes binarios oficiales no funcionan debido a la incompatibilidad de los libs compartidos. En tales casos, use la opción -s
para forzar la instalación desde la fuente:
instalación nvm -s 0.8.6
Si la configuración del alias default
no establece la versión de nodo en nuevos shells (es decir, system
de rendimientos nvm current
), asegúrese de que la PATH
del nodo del sistema esté configurada antes de la línea de origen nvm.sh
en su perfil de shell (consulte el #658)
Versión del nodo NVM no se encuentra en Vim Shell
Si establece la versión del nodo en una versión que no sea la versión de nodo de su sistema nvm use 6.2.1
y abra VIM y ejecute :!node -v
debería ver v6.2.1
si ve su versión del sistema v0.12.7
. Necesitas correr:
sudo chmod ugo-x/usr/libexec/path_helper
Más sobre este tema en Dotphiles/Dotzsh.
NVM no es compatible con la opción de "prefijo" de configuración de NPM
Algunas soluciones para este problema se pueden encontrar aquí
Hay un caso de borde más que causa este problema, y ese es un desajuste entre la ruta de $HOME
y el nombre real del directorio de inicio del usuario .
Debe asegurarse de que el nombre del directorio de usuario en $HOME
y el nombre del directorio de usuario que vería en ejecución ls /Users/
se capitalice de la misma manera (ver este problema).
Para cambiar el directorio de usuario y/o el nombre de la cuenta, siga las instrucciones aquí
Homebrew hace que los directorios de ZSH no seguren
COMPINIT ZSH: directorios inseguros, ejecute Comaus para la lista. Ignorar directorios inseguros y continuar [y] o abortar el compinit [n]? y
Homebrew causa directorios inseguros como /usr/local/share/zsh/site-functions
y /usr/local/share/zsh
. Este no es un problema nvm
: es un problema casero. Consulte aquí algunas soluciones relacionadas con el problema.
Macs con chips de silicio de manzana
El soporte experimental para la arquitectura de chips de silicio Apple se agregó en el nodo.js v15.3 y se agregó soporte completo en V16.0. Debido a esto, si intenta instalar versiones anteriores de Node como de costumbre, probablemente experimentará errores de compilación al instalar errores de nodo o fuera de memoria al ejecutar su código.
Por lo tanto, si desea ejecutar una versión antes de V16.0 en un Apple Silicon Mac, puede ser mejor compilar el nodo dirigido a la arquitectura Intel x86_64
para que Rosetta 2 pueda traducir las instrucciones del procesador x86_64
a las instrucciones de silicio de Apple basadas en el brazo. Esto es lo que necesitará hacer:
Instale Rosetta, si aún no lo ha hecho
$ SoftwareUpdate --install-Rosetta
Quizás se pregunte: "¿Cómo sabrá mi Apple Silicon Mac para usar Rosetta para una versión de nodo compilada para un chip Intel?". Si un ejecutable contiene solo instrucciones de Intel, MacOS usará automáticamente Rosetta para traducir las instrucciones.
Abra una carcasa que se ejecuta con Rosetta
$ Arch -x86_64 ZSH
Nota: Esto también se puede lograr encontrando la aplicación Terminal o ITerm en Finder, haciendo clic derecho, seleccionando "Obtener información" y luego verificar el cuadro etiquetado como "Abrir usando Rosetta".
Nota: Esta sesión terminal ahora se está ejecutando en zsh
. Si zsh
no es el caparazón que normalmente usa, es posible que nvm
no se source
automáticamente como lo es probablemente por su shell habitual a través de sus puntos de puntos. Si ese es el caso, asegúrese de obtener nvm
.
$ fuente "$ {nvm_dir} /nvm.sh"
Instale cualquier versión anterior del nodo que le interese. Usemos 12.22.1 como ejemplo. Esto buscará el código fuente del nodo y lo compilará, lo que llevará varios minutos.
$ NVM instalación v12.22.1 --shared-zlib
Nota: Probablemente tenga curiosidad por qué --shared-zlib
está incluido. Hay un error en las versiones recientes del compilador System clang
de Apple. Si una de estas versiones rotas está instalada en su sistema, el paso anterior probablemente aún tendrá éxito incluso si no incluyó la bandera --shared-zlib
. Sin embargo, más tarde, cuando intente npm install
algo usando su versión anterior de Node.js, verá errores incorrect data check
. Si desea evitar la posible molestia de lidiar con esto, incluya esa bandera. Para más detalles, consulte este tema y este comentario
Salga a su caparazón natal.
$ Salida $ Arch brazo64
Nota: Si seleccionó el cuadro etiquetado como "Abrir usando Rosetta" en lugar de ejecutar el comando CLI en el segundo paso, verá i386
aquí. A menos que tenga otra razón para que se seleccione esa caja, puede deseleccionarse ahora.
Verifique para asegurarse de que la arquitectura sea correcta. x64
es la abreviatura de x86_64
, que es lo que quieres ver.
$ node -p process.arch x64
Ahora debería poder usar el nodo como de costumbre.
Si ha encontrado este error en WSL-2:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | intento % Total % recibido % XFERD Tiempo de tiempo promedio Tiempo de tiempo Corriente DLOAD SUPTO TOTAL TOTAL GED SED VELOCIDAD 0 0 0 0 0 0 0 0-:-:-0:00:09-:-:-0curl: (6) No pudo resolver el host: raw.githubuserContent.com
Puede deberse a su antivirus, VPN u otras razones.
Donde puedes ping 8.8.8.8
mientras no puedes ping google.com
Esto podría resolverse simplemente ejecutando esto en su directorio raíz:
sudo rm /etc/resolv.conf sudo bash -c 'echo "Nameserver 8.8.8.8"> /etc/resolv.conf'Sudo bash -c' echo "[network]"> /etc/wsl.conf'sudo bash -c 'echo "generesolvconf = false" " >> /etc/wsl.conf'sudo chattr +i /etc/resolv.conf
Esto elimina su archivo resolv.conf
que se genera automáticamente cuando ejecuta WSL, crea un nuevo archivo y coloca nameserver 8.8.8.8
, luego crea un archivo wsl.conf
y agrega [network]
y generateResolveConf = false
para evitar la auto-generación de eso. archivo.
Puede verificar el contenido del archivo ejecutando:
Cat /etc/resolv.conf
Actualmente, el único mantenedor es @ljharb: más mantenedores son bastante bienvenidos, y esperamos agregar a la gente al equipo con el tiempo. La gobernanza se reevaluará a medida que evolucione el proyecto.
Solo es compatible con la última versión (V0.40.1 en este momento).
Si no puede actualizar la última versión de nvm
, nuestros socios proporcionan soluciones de seguridad comercial para todas las versiones no compatibles:
Herodevs Soporte interminable
Ver licencia. MD.
Copyright OpenJS Foundation y colaboradores nvm
. Reservados todos los derechos. La Fundación OpenJS tiene marcas registradas y utiliza marcas comerciales. Para obtener una lista de marcas comerciales de la Fundación OpenJS, consulte nuestra lista de políticas de marca registrada y lista de marcas registradas. Node.js es una marca registrada de Joyent, Inc. y se usa con su permiso. Las marcas comerciales y logotipos no indicados en la lista de marcas comerciales de la Fundación OpenJS son marcas comerciales registradas o registradas® de sus respectivos tenedores. El uso de ellos no implica ninguna afiliación o respaldo por ellos.
La Fundación OpenJS | Términos de uso | Política de privacidad | Estatutos de la Fundación OpenJS | Política de marca registrada | Lista de marcas registradas | Política de cookies