Estoy tratando de ejecutar otra versión de NodeJS nvmpero obtengo este error:
$ nvm use v4.2.4
nvm is not compatible with the npm config "prefix" option:
currently set to "/Users/z/.npm-global"
Run `npm config delete prefix` or `nvm use --delete-prefix v4.2.4` to unset it.
Tengo mi prefijo establecido a propósito para evitarlo sudo npm(consulte https://docs.npmjs.com/getting-started/fixing-npm-permissions ).
¿Hay alguna forma que pueda usar nvmsin perder mi prefijo para los paquetes instalados globalmente?

Respuestas:
Eliminar y restablecer el prefijo
Nota: Cambie el número de versión con el indicado en el mensaje de error.
Créditos a @gabfiocchi en Github - "Necesitas sobrescribir el prefijo nvm"
fuente
npm config set prefix $NVM_DIR/versions/node/<node-version-directory>Tuve el mismo problema y la ejecución
npm config delete prefixno me ayudó.Pero esto hizo:
Después de instalar nvm usando brew, cree el
~/.nvmdirectorio:$ mkdir ~/.nvmy agregue las siguientes líneas en
~/.bash_profile:(Compruebe que dispone de ningún otro comando relacionado NVM en cualquiera
~/.bashrco~/.profileo~/.bash_profile)Abra una nueva terminal y esta vez no debería imprimir ningún mensaje de advertencia.
Verifique que nvm esté funcionando ejecutando el
nvm --versioncomando.Después de eso, instale / reinstale NodeJS usando
nvm install node && nvm alias default node.Más información
Lo instalé
nvmusandohomebrewy luego recibí esta notificación:Ignorarlo me trajo a este mensaje de error:
Seguí una guía anterior (de
homebrew/nvm) y luego descubrí que necesitaba reinstalar NodeJS. Así que lo hice:y fue arreglado
Actualización: el uso de brew para instalar NVM provoca un inicio lento de la Terminal. Puede seguir estas instrucciones para resolverlo.
fuente
nvm alias default nodeparecía ayudarme en mi casonvmno es compatible cuando se instala a través de brew. Desinstale y use el método adecuado, el script curl en el archivo Léame.nvm. Esta respuesta no me funcionó.rm -rf node_modulesynpm installvolver a ejecutarlo , ya que los directorios ya tenían problemas de permisos.brew remove node -f, que elimina todas las versiones instaladas. Haga esto primero, luego siga la guía en mi enlace anterior, luego elimine node_modules. ¡Deberías obtener una instalación limpia! Creo que también debe instalar npm, que acabo de seguir las instrucciones de un artículo de nodejs.org que apareció cuando lo busqué.npm install npm@latest -gfue el comando, una vez que instala el nodo.Esto puede ser un conflicto con su instalación local de Node (si la tenía instalada de otra manera que no sea NVM en el pasado). Debe eliminar esta instancia de nodo:
sudo rm -rf /usr/local/lib/node_modulessudo rm /usr/local/bin/nodecd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rmDespués de que no puedas instalar nvm
fuente
Este error puede ocurrir cuando la ruta de la carpeta de instalación de NVM tiene un enlace simbólico .
Explicación
La ruta de instalación predeterminada de NVM es:
$HOME/.nvmpero su carpeta de inicio podría ser un enlace simbólico para otra unidad, como mi caso.Ejemplo, mi carpeta de inicio es un enlace simbólico a otra unidad:
/home/myuser -> /bigdrive/myuserEsto causa el problema de prefijo.
Solución
En su script de inicio (.bashrc o .zshrc u otro), cambie la carpeta NVM a la ruta directa.
Ej:
NVM_DIR="/bigdrive/myuser/.nvm"..bashrc
fuente
Me encontré con esto mientras usaba el nodo instalado vía
nvm, connvminstalado vía homebrew. Lo resolví ejecutandobrew uninstall nvm,rm -rf $NVM_DIRy luego reinstalando nvm usando el script de instalación oficial y reinstalando la versión de nodo que necesitaba.Nota: también había
$NVM_DIRmontado y vinculado. Lo volví a poner en mi hogar.fuente
Puede ser el problema si tiene su directorio de inicio montado en alguna parte, debido a que nvm no funciona correctamente con enlaces simbólicos. Como no me importa dónde se encuentra mi $ NVM_DIR, ejecuto esto y todo funciona bien:
fuente
Para aquellos que intenten eliminar nvm de brew
puede que no sea suficiente simplemente preparar desinstalar nvm
si ve que el prefijo npm sigue siendo / usr / local, ejecute este comando
fuente
Tengo el mismo mensaje de error pero otra solución. La ruta autogenerada durante curl (install.sh) no coincide. Comprueba esto con:
En mi caso:
/var/www//.nvm. Muestre en su archivo bash generado automáticamente y cámbielo y reemplácelo: (~ / .bash_profile, ~ / .zshrc, ~ / .profile o ~ / .bashrc)reemplazar
con (por ejemplo)
fuente
Seguí la respuesta https://stackoverflow.com/a/47861348/2391795 pero no funcionó bien.
Después de ejecutar los comandos recomendados, mi nvm ya no funcionaba, la ejecución
nvm usemostraría la versión de nodo adecuada que se está utilizando, pero la ejecuciónnode -vmostrará otra. Ya no era posible cambiar la versión del nodo.Desinstalé y reinstalé nvm por completo para solucionarlo. Seguí https://github.com/creationix/nvm#manual-uninstall ejecutando
Luego edité mi
.zshrcpara eliminar las líneas relacionadas con nvm, que en mi caso eranLuego comenzó un nuevo shell (para que nvm no se cargue en este nuevo shell) y ejecutó https://github.com/creationix/nvm#install-script
Lo cual agregó nvm las líneas que previamente había eliminado en mi
.zshrc.Entonces pude usar nvm como solía hacerlo. Supongo que es un caso extraño en el que las cosas salieron mal y me obligaron a reinstalar todo, no parece que la mayoría de las personas pasen por esto debido a este problema.
fuente
Déjame describir mi situación.
Primero, verifique la configuración actual
Entonces, encontré la configuración de error en la salida:
Entonces,
C:\\Program Files\\nodejseliminé el /mnt/c/Users/paul/.npmrc.fuente
Resolví este problema cuando se mostraba en VSCode y JetBrains Terminals, pero no en la terminal nativa usando los siguientes comandos:
Esto le dará la ruta resuelta al final:
A partir de ahí, eliminar los archivos y reiniciar VS Code debería solucionar el problema:
enlace de reparación: https://github.com/nvm-sh/nvm/issues/1690#issuecomment-392014774
fuente
Estaba buscando una solución para el problema de prefijo nvm y encontré esta pregunta (antes de encontrar la solución). Aquí está mi "diálogo" de shell. Espero que pueda ser útil para alguien. Pude configurar el prefijo con la ayuda de esta publicación: https://github.com/npm/npm/issues/6592
Cuando probé
npm config delete prefixonvm use --delete-prefixantes de usarnpm --prefix="" set prefix "", solo obtuve: npm ERR! no está bien código 0Tenga en cuenta que tendrá que repetir el mismo procedimiento con cada versión de nodo, el prefijo se vuelve a configurar (en mi caso) / usr / local después de la instalación.
fuente
Tuve este problema después de mover mi carpeta de inicio a una nueva unidad en Linux. Se solucionó eliminando la carpeta .nvm y reinstalando nvm
fuente
Acabo de resolver el problema. Hice un enlace simbólico
$HOME/.nvmal$DEV_ZONE/env/node/nvmdirectorio. Estaba enfrentando el mismo problema. ReemplacéNVM_DIRde la$HOME/.zshrcsiguiente maneraPor cierto, instale NVM usando
curlowgetcomando no usandobrew. Para obtener más información, consulte el comentario en este número en Github: 855 # issuecomment-146115434fuente
nvmconnpm?Solo tengo una idea. Use el enlace simbólico para resolver el error y aún puede usar su prefijo para paquetes instalados globalmente.
ln -s [your prefix path] [path in the '~/.nvm']entonces tendrá una carpeta simbólica en la~/.nvmcarpeta, pero de hecho, sus paquetes globales todavía están instalados en [su ruta de prefijo]. Entonces el error no volverá a aparecer y puede usarlonvm use **normalmente. PD: me ha funcionadomac. pps: no olvide configurar$PATHsubincarpeta npm para usar los paquetes instalados globalmente.fuente
Nota:
para eliminar, eliminar o desinstalar nvm, simplemente elimine la
$NVM_DIRcarpeta (por lo general~/.nvm)puede intentar:
rm -rf ~/.nvmfuente