mac devdependencies node.js

node.js - devdependencies - npm install--save



¿Cómo npm instalar global no como root? (6)

  1. Inicia una nueva sesión de terminal o simplemente escribe "source ~ / .bashrc"
  2. Ahora puede ejecutar cualquier archivo ejecutable como grunt / bower / yo / whatever (dependiendo de los paquetes npm que haya instalado globalmente).

PS BTW cambiando el directorio npm global se puede hacer con un comando: npm config set prefix ~ / global_npm

Estoy en una caja de Unix donde no tengo acceso de root.

Cambié mi archivo .npmrc (en el directorio raíz de mi usuario) a:

prefix=~/global_npm

Ahora cuando hago "npm install -g packagename" se instala dentro de mi directorio global_npm. Lo que es bueno. Y luego me di acceso a la ruta actualizando mi archivo .bashrc con:

export PATH=$PATH:~/global_npm/bin

¿Necesito hacer algo más? Creo que necesito configurar NODE_PATH pero no estoy seguro?


A menos que necesite una instalación de paquete debido a dependencias, que son poco frecuentes, le recomendaría que utilice NVM ( https://github.com/creationix/nvm ) para instalar Node.

Si lo hace sin sudo, tampoco necesitará usar sudo cuando instale módulos de manera global.


Eso es prácticamente todo lo que necesita hacer si está instalando utilidades binarias (que, según tengo entendido, es cuando actualizó su PATH ).

NODE_PATH solo tendrá que configurarse si ha instalado un módulo que desea require() de scripts de nodo no relacionados, pero realmente no debería hacer esto de todos modos. Los módulos que se requieren como dependencias para otros módulos / scripts deben instalarse localmente (es decir, especificados en package.json ), de esa manera mantendrá un control estricto sobre las versiones.

Edición: la respuesta aceptada aquí lo explica mucho mejor de lo que pude: ¿Cómo instalo un módulo globalmente usando npm?


Intenta cambiar de usuario:

su - username

Si no tienes otro usuario prueba:

useradd username

Entonces,

su - username


La respuesta de Rowno funciona para mí, pero solo después de hacer una pequeña edición en el paso 4:

NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"

y lo cambié a:

NODE_PATH="$NPM_PACKAGES/node_modules:$NODE_PATH"


Sindre Sorhus tiene una gran guía en github.com/sindresorhus/guides que he publicado aquí.

Instale paquetes npm globalmente sin sudo en OS X y Linux

npm instala paquetes localmente dentro de sus proyectos por defecto. También puede instalar paquetes globalmente (por ejemplo, npm install -g <package> ) (útil para aplicaciones de línea de comandos). Sin embargo, la desventaja de esto es que necesita ser root (o usar sudo ) para poder instalarse globalmente.

Aquí hay una forma de instalar paquetes globalmente para un usuario determinado.

1. Crea un directorio para tus paquetes globales.

mkdir "${HOME}/.npm-packages"

2. Consulte este directorio para uso futuro en su .bashrc / .zshrc :

NPM_PACKAGES="${HOME}/.npm-packages"

3. Indique a npm dónde almacenar su paquete instalado globalmente. En su archivo $HOME/.npmrc agregue:

prefix=${HOME}/.npm-packages

4. Asegúrese de que el node los encontrará. Agregue lo siguiente a su .bashrc / .zshrc :

NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"

5. Asegúrese de que encontrará binarios instalados y páginas de manual. Agregue lo siguiente a su .bashrc / .zshrc :

PATH="$NPM_PACKAGES/bin:$PATH" # Unset manpath so we can inherit from /etc/manpath via the `manpath` # command unset MANPATH # delete if you already modified MANPATH elsewhere in your config MANPATH="$NPM_PACKAGES/share/man:$(manpath)"

Echa un vistazo a npm-g_nosudo para realizar los pasos anteriores de forma automática.

NOTA: Si está ejecutando OS X, es posible que el archivo .bashrc aún no exista, y el terminal obtendrá sus parámetros de entorno de otro archivo, como .profile o .bash_profile . Estos archivos también residen en la carpeta de inicio del usuario. En este caso, simplemente agregándoles la siguiente línea les indicará a Terminal que también cargue el archivo .bashrc :

source ~/.bashrc