node manager mac and node.js macos npm homebrew nvm

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

enlace de solución descriptiva



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:

  1. Desinstale nvm completamente usando homebrew: brew uninstall nvm
  2. Reinstalar brew install nvm
  3. 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.