DEV Community

Emmanuelle Laguna
Emmanuelle Laguna

Posted on • Updated on

Como configurar un path global de NPM con zsh

Como configurar un path global de NPM con zsh

Hace pocos días salió la actualización del sistema operativo para Mac Catalina. Esto me trajo errores con mi instalación de Node que se solucionaron fácilmente pero aún así dejo este tutorial para quien esté experimentando lo mismo.

Antecedentes

Cuando instalo Node me gusta dejar una ruta personalizada para las instalaciones globales, esto para evitar hacer uso de sudo cada vez que instalo algo globalmente. Ademas si instalo desde mi respaldo de Time Machine en una nueva maquina, esta configuración se respetará. Dicho esto, me gustaría mostrar cómo lograr esta configuración, en caso de que aún no sepas hacerlo.
Primero vamos a crear una carpeta en raíz llamada .npm-global, aunque puede llamarse como prefieras, ejecutando el siguiente comando desde la terminal:

$ mkdir ~/.npm-global 

Ahora, vamos a necesitar decirle a nuestro sistema en donde buscar nuestros paquetes de Node haciendo lo siguiente:
Creamos un archivo llamado .bash_profile, en caso de no existir, con el siguiente comando

$ vim ~/.bash_profile

se puede usar cualquier otro editor, pero a mí me gusta VIM.
Agregamos la siguiente linea:

export PATH=~/.npm-global/bin:$PATH

guardamos los cambios y cerramos el documento.
En caso de no tener zsh solo basta con que ejecutemos un comando más;

$ source ~/.bash_profile

y nuestro ambiente estará trabajando correctamente. Si como en mi caso, estas usando zsh que por cierto viene por defecto en la versión 10.15 de MacOS , entonces tendremos que crear otro archivo, como lo explico a continuación.
Creamos un archivo llamado .zshrc y ponemos la siguiente linea

$ source ~/.bash_profile;

guardamos y volvemos a ejecutar

$ source ~/.bash_profile

con eso deberíamos tener nuestro NPM funcionando correctamente.

Aclaraciones

Puede ser que el archivo .bash_profile no funcione, para ello te recomiendo leer el siguiente post What is the difference between .bash_profile and .bashrc?

Discussion (0)