2010-09-15 7 views
11

Configurando npm como el usuario root es directo y funciona. Excepto que debe ejecutar comandos npm como raíz (no recomendado). Así que pensé en intentar configurarlo como un usuario no root.¿Cómo se configura npm (administrador de paquetes de nodo) sin acceso de root?

De acuerdo con la documentación de la NPM, un usuario no root sin acceso root pueden configurar NPM por:

  1. creación de un archivo con .npmrcroot, binroot y manroot apuntando a las carpetas que el usuario posee.
  2. A continuación, ejecuta el script de instalación.

OK. La instalación estaba bien.

Pero el nodo no puede ver los paquetes proporcionados por npm.

Entonces, ¿cómo hago que el nodo tenga conocimiento de los paquetes proporcionados por npm? (No tuve que hacer nada cuando instalé npm como root). Puedo configurar require.paths dentro del nodo, o establecer la variable de entorno NODE_PATH, pero ¿a qué?

Gracias.

+0

No npm viene con nodo ahora? Nunca tuve que ejecutar comandos npm como root, a menos que esté usando -g ... – tjameson

Respuesta

5

A través de una pequeña exploración, parece que se puede o bien:

  1. configurar su NODE_PATH a lo que el directorio raíz de la NGP es, o
  2. mientras que en el nodo, invocar require.paths.push('path_to_npm_root')
+0

Y si está tratando de depurar esto desde el repl, vea http://github.com/ry/node/issues/ cerrado # issue/303 – keturn

4

Esto funcionó para yo:

  1. Haz un ~/.node carpeta

    mkdir ~/.node 
    
  2. Editar ~/.npmrc y agregue la línea

    prefix = ~/.node 
    
  3. Editar sus ~/.profile o ~/.bash_profile y añadir estas líneas

    PATH="$HOME/.node/bin:$PATH" 
    NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH" 
    

Ahora puedo hacer cosas como npm -g install http-server y lo hará alto a ~/.node sin raíz. Con esto en su lugar, cuando escriba http-server, se ejecuta.

Cuestiones relacionadas