node.js - manager - nvm mantiene el nodo de "olvido" en la nueva sesión de terminal
nvm node js (11)
Alias al propio node
para evitar actualizar el alias predeterminado junto con las actualizaciones de la versión del nodo más adelante.
nvm alias default node
Al usar una nueva sesión de terminal en OS X, nvm
olvida de la versión del nodo y por defecto es nada:
$ nvm ls
:
.nvm
v0.11.12
v0.11.13
Tengo que seguir nvm use v.0.11.13
en cada sesión:
.nvm
v0.11.12
-> v0.11.13
He intentado tanto la instalación de brew
como el script de instalación oficial.
Mi .profile
para la versión brew:
#nvm
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
Y para el script install.sh:
$ curl https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | bash
#nvm
export NVM_DIR="/Users/farhad/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
¿Alguna pista de lo que estoy haciendo mal?
En mi caso, otro programa había agregado cambios de PATH
a .bashrc
Si el otro programa cambió el PATH
después de la inicialización de nvm, entonces los cambios de PATH
de nvm serían olvidados, y obtendríamos el nodo del sistema en nuestro PATH
(o ningún nodo).
La solución fue mover la configuración de nvm a la parte inferior de .bashrc
### BAD .bashrc ###
# NVM initialisation
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && /. "$NVM_DIR/nvm.sh" # This loads nvm
# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"
Solución:
### GOOD .bashrc ###
# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"
# NVM initialisation
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && /. "$NVM_DIR/nvm.sh" # This loads nvm
(Esto fue con bash 4.2.46 en CentOS. Me parece un error en bash, pero puedo estar equivocado).
Esta pregunta ha sido mencionada para el OSX, pero me sucedió en mi sistema operativo Linux. Intenté usar nvm alias default <version>
pero para cada nueva sesión de terminal se olvidó la versión de nodo utilizada. Entonces, aquí está la solución que descubrí.
asegúrese de establecer un alias predeterminado para la versión del nodo , coloque el siguiente código en .bashrc y source .bashrc
.
export NVM_DIR="/home/bonnie/.nvm"
## If the file exists and is not empty
if [ -s "$NVM_DIR/nvm.sh" ]; then
## Source it
source "$NVM_DIR/nvm.sh"
fi
NODE_DEFAULT_VERSION=$(<"$NVM_DIR/alias/default")
export PATH="$NVM_DIR/versions/node/$NODE_DEFAULT_VERSION/bin":$PATH
He encontrado una nueva forma aquí. Usar n
Administrar su Node.js de manera interactiva ayuda.
Intente nvm alias default
. Por ejemplo:
$ nvm alias default 0.12.7
Esto establece la versión de nodo predeterminada en su shell. Luego verifique que el cambio persista cerrando la ventana de shell, abriendo una nueva, luego: node --version
Las mejores soluciones no parecían funcionar para mí. Mi solución está abajo:
- Desinstale nvm completamente usando homebrew:
brew uninstall nvm
- Reinstalar
brew install nvm
En la Terminal, siga los pasos a continuación (estos también se enumeran al instalar nvm a través de homebrew):
mkdir ~/.nvm cp $(brew --prefix nvm)/nvm-exec ~/.nvm/ export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh
Los pasos descritos anteriormente agregarán el directorio de trabajo de NVM a su ruta $ HOME, copie nvm-exec al directorio de trabajo de NVM y a $ HOME / .bashrc, $ HOME / .zshrc, o al archivo de configuración equivalente de su shell. listado en una instalación de NVM usando homebrew)
Para instalar la última versión estable:
nvm install stable
Para establecer por defecto la versión estable (en lugar de una versión específica):
nvm alias default stable
Para listar las versiones instaladas:
nvm list
A partir de la v6.2.0
, se verá algo como:
$ nvm list
v4.4.2
-> v6.2.0
default -> stable (-> v6.2.0)
node -> stable (-> v6.2.0) (default)
stable -> 6.2 (-> v6.2.0) (default)
iojs -> N/A (default)
Si ya lo has intentado todo sin suerte, puedes intentar esto: _
1 -> Desinstalar NVM
rm -rf ~/.nvm
2 -> Eliminar las dependencias npm siguiendo this
3 -> Instalar NVM
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
4 -> Establecer la configuración de ~/.bash_profile
Ejecuta sudo nano ~/.bash_profile
Copiar y pegar siguiendo esto
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && /. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && /. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
5 -> CONTROL + X
guardar los cambios
6 -> Ejecutar . ~/.bash_profile
. ~/.bash_profile
7 -> Ahora debería tener nvm
instalado en su máquina, para instalar el nodo ejecutar nvm install v7.8.0
esta será la versión predeterminada del nodo o puede instalar cualquier versión del nodo
También en caso de que haya instalado un nodo antes de nvm, compruebe su ~ / .bash_profile para no tener algo como:
export PATH=/bin:/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH
Si lo tiene, coméntelo / elimínelo y nvm debería comenzar a manejar la versión predeterminada del nodo.
ejecuta esto después de instalar cualquier versión,
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
Este comando copia cualquier versión del nodo que tenga activo a través de nvm en el directorio / usr / local / y configura los permisos para que todos los usuarios puedan acceder a ellos.
nvm hace su trabajo cambiando la variable PATH, por lo que debe asegurarse de que no está cambiando su PATH a otra cosa después de obtener el script nvm.sh.
En mi caso, se estaba llamando a nvm.sh en .bashrc pero luego la variable PATH se estaba actualizando en .bash_profile, lo que hizo que mi sesión encontrara el nodo del sistema antes que el nodo nvm.