macos - last - comando npm-sudo o no?
npm last version (5)
En mi opinión, es la forma más limpia de especificar el prefijo npm:
npm config set prefix ~/.node_modules
Y luego para agregar lo siguiente a usted .bash_profile
export PATH=$HOME/.node_modules/bin:$PATH
Ahora los paquetes se instalarán en su directorio de usuarios y no se dañarán permisos.
EDITAR: Si no puede instalar yeoman , cree un archivo bash en uno de sus directorios PATH llamado yodoctor con el siguiente contenido
#!/bin/bash
yo doctor
Hacer el archivo ejecutable con
chmod +x yodoctor
Y ahora deberías poder instalar yeoman.
Actualmente siempre ejecuto sudo npm install <package-name>
pero, como entiendo, no es correcto.
Quiero tener la oportunidad de no usarlo como root / administrador. Seguí algunos consejos y usé este comando sudo chown -R <username> ~/.npm
pero no funcionará ...
por ejemplo, es una salida de mi npm install jade
...
npm http 200 https://registry.npmjs.org/amdefine
npm http GET https://registry.npmjs.org/amdefine/-/amdefine-0.0.5.tgz
npm http 200 https://registry.npmjs.org/amdefine/-/amdefine-0.0.5.tgz
npm ERR! Error: EACCES, symlink ''../jade/bin/jade''
npm ERR! { [Error: EACCES, symlink ''../jade/bin/jade''] errno: 3, code: ''EACCES'', path: ''../jade/bin/jade'' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
Como ves, la descarga comenzó con éxito pero luego falló.
Me pregunto cuál es la mejor manera de no permitir sudo en npm?
Es posible (y recomendable) npm install -g
módulos de nodos sin sudo
.
Verifique el permiso de su carpeta /usr/local/share/npm/bin
. Instalé node y npm a través de brew (sin sudo
) y esa carpeta en particular terminó siendo propiedad de root.
Esto lo arregló de una vez por todas:
$ sudo chown $(whoami) /usr/local/share/npm/bin
(En cuanto a rechazar sudo
con npm: tendrías que modificar npm para eso. Tu propio código de nodo podría usar https://npmjs.org/package/sudo-block , npm install sudo-block
)
EDITAR: a pesar de que esto funciona, ya no uso -g
. En su lugar, use el prefijo (ver la siguiente respuesta), o mejor aún use NIX https://unix.stackexchange.com/a/381797 (incluso en OSX)
He encontrado que esta es una mejor solución
sudo chown -R $USER /Users/$USER
Esto solo cambiará el propietario de su usuario a usted y npm debe instalarse bajo su usuario en OS X. Todo lo que he estado leyendo dice que sudo para las instalaciones de npm es malo y tendría que estar de acuerdo con ellos cuando se abra. scripts maliciosos.
Las dos soluciones ofrecidas aquí no son algo que yo recomendaría porque son soluciones de fuerza bruta. En su lugar, recomiendo leer Uno no simplemente sudo npm
También puedes hacer:
sudo chown -R $USER /usr/local
y recursivamente cambia los archivos a tu usuario actual.