¿Cómo se configura NPM (administrador de paquetes nodo) sin acceso root?
-
02-10-2019 - |
Pregunta
Configuración de la NGP como el usuario root es straighforward y workds. A menos que usted tiene que ejecutar comandos de NGP como raíz (no recomendado). Así que pensé que iba a tratar su puesta en marcha como usuario no root.
De acuerdo con la documentación de la NPM, un usuario no root sin acceso root puede configurar NPM por:
- crear un archivo con
.npmrc
root
,binroot
, y señalandomanroot
a las carpetas que el usuario es dueño. - A continuación, se ejecuta el script de instalación.
OK. Instalar estaba bien.
Pero nodo no puede ver los paquetes proporcionados por la NGP.
Así como creo nodo consciente de los paquetes proporcionados por la NGP? (Yo no tenía que hacer nada cuando he instalado previamente NPM como root).
Puedo establecer require.paths
dentro del nodo, o establecer la variable de entorno NODE_PATH
, pero a qué?
Gracias.
Solución
A través de una pequeña exploración, parece que hacer lo siguiente:
- configurar su
NODE_PATH
a lo NPM del directorio raíz es, o - mientras que en nodo, invoke
require.paths.push('path_to_npm_root')
Otros consejos
Esto funcionó para mí:
-
Hacer una
~/.node
carpeta ??p>mkdir ~/.node
-
Editar
~/.npmrc
y agregue la líneaprefix = ~/.node
-
Editar su
~/.profile
o~/.bash_profile
y añadir estas líneasPATH="$HOME/.node/bin:$PATH" NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH"
Ahora puedo hacer cosas como npm -g install http-server
y se instalará a ~/.node
sin raíz. Con esto en su lugar, a continuación, cuando escribo http-server
, que se ejecuta.