¿Qué podría estar causando el error Error: EACCES: permission denied, access '/usr/local/lib/node_modules'?
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/macbookmd101/.npm/_logs/2018-02-21T16_26_08_421Z-debug.log

Respuestas:
cambia los permisos de tu archivo ... así
primero verifique quién posee el directorio
está negando el acceso porque la carpeta node_module es propiedad de root
así que esto debe cambiarse cambiando la raíz a su usuario, pero primero ejecute el siguiente comando para verificar su usuario actual ¿Cómo obtengo el nombre del usuario activo a través de la línea de comando en OS X?
O
whoamiluego cambia de dueño
O
O
fuente
sudo chown -R myuser:Company\\Domain\ Users /usr/local/lib/node_modules. Para enumerar correctamente el nombre del grupo que hiceid -gn myuser.illegal group name. Así que cambié el comando asudo chown -R ownerName: /usr/local/lib/node_modulesy funcionó.chown. github.com/nvm-sh/nvmPara minimizar la posibilidad de errores de permisos, puede configurar npm para usar un directorio diferente. En este ejemplo, creará y usará un directorio oculto en su directorio de inicio.
Copia de seguridad de tu computadora. En la línea de comando, en su directorio de inicio, cree un directorio para instalaciones globales:
mkdir ~/.npm-globalConfigure npm para usar la nueva ruta del directorio:
npm config set prefix '~/.npm-global'En su editor de texto preferido, abra o cree un
~/.profilearchivo y agregue esta línea:
export PATH=~/.npm-global/bin:$PATHEn la línea de comando, actualice las variables de su sistema:
source ~/.profilePara probar su nueva configuración, instale un paquete globalmente sin usar sudo
fuente
npm config set prefix(especialmente si está escribiendo un instalador no root), puede anular laPREFIXvariable env o proporcionar la--prefixopción, ambas equivalentes anpm config set prefix. (no estoy seguro de cuál anula cuál)Todo lo que necesita hacer es agregar USUARIO al propietario de / local / lib
fuente
chownun alto riesgo de destruir la estructura de permisos de todo su sistema de archivos.sudo chmod -R 777 /.intente agregar sudo antes de cualquier comando que esté intentando.
así: sudo npm install
Usar sudo con un comando en Linux / UNIX generalmente eleva sus permisos a niveles de superusuario. En Windows, la cuenta de superusuario generalmente se llama 'Administrador'. En Linux / Unix, la cuenta de superusuario generalmente se denomina 'root'.
El usuario root tiene permiso para acceder, modificar o eliminar casi cualquier archivo en su computadora. Las cuentas de usuario normales pueden acceder, modificar o eliminar muchos menos archivos. Las restricciones en una cuenta normal protegen su computadora de programas o usuarios no autorizados o dañinos. Algunos procesos requieren que realice acciones en archivos o carpetas a los que normalmente no tiene permisos de acceso. Instalar un programa al que todos puedan acceder es una de estas acciones.
En su caso, ejecutar el comando de instalación con sudo le otorga los permisos del superusuario y le permite modificar archivos que su usuario normal no tiene permiso para modificar.
fuente
Intenté la solución de la respuesta dada por @okanda pero no funcionó para mí.
Sin embargo, funcionó perfectamente cuando lo hice para varias carpetas como se menciona en este hilo: https://github.com/angular/angular-cli/issues/9676#issuecomment-464857493
fuente
Al instalar paquetes globales en ubuntu , necesita permisos de escritura especiales mientras escribe en la
usr/bincarpeta. Es por razones de seguridad. Entonces, cada vez que instales un paquete global, usa:Para su caso específico, será:
fuente
Parece que te encuentras con problemas de permisos. Si está instalando
npm-packages, es posible que obtenga unEACCESerror al intentar instalar un paquete globalmente. Esto significa que no tiene permiso para escribir en los directorios quenpmutiliza para almacenar paquetes y comandos globales.Intenta ejecutar comandos:
sudo chmod u+x -R 775 ~/.npmysudo chown $USER -R ~/.npmo simplemente puede ejecutar cualquiernpmcomando consudo, que debe conseguir resolver su problema.Si está instalando un
npm-packagelocal, entonces debe estar en su directorio de proyecto local y puede intentar ejecutar elsudo npm install <pkg-name>comando para instalar el paquete requerido. el propósito de usarsudoes que cambiará sus permisos de propietario para que pueda autorizar a su usuario actual a ejecutarnpmcomandos.Le recomiendo que eche un vistazo a https://docs.npmjs.com/getting-started/fixing-npm-permissions
fuente
Estaba tratando de instalar react expo y aparte de sudo tuve que agregar --unsafe-perm
Me gusta esto. Esto resuelve mi problema
fuente
Si enfrenta este problema en su Mac. Sigue estos pasos
Primero verifique quién es el propietario de este archivo utilizando el siguiente comando
encontrarás un archivo como el siguiente, uno de ellos está debajo
¿Ha notado que el archivo anterior es propio de la raíz, para realizar cambios en el interior, debe cambiar la ruta de acceso del propietario?
puede usar verificar quién es el usuario actual con este comando
y luego puede cambiar llamando a este comando (simplemente reemplace su nombre de usuario con ownerName)
en mi caso, como sabes, el usuario es "yamsol" llamaré a este comando de esta manera
Eso es.
fuente
Tenga cuidado con todas las respuestas que cambian el propietario de todos los directorios en / usr / local. ¡ Básicamente, no ensucie el sistema Linux!
Creo que la mejor manera es usar su propia carpeta para localizar todos los paquetes globales: https://www.competa.com/blog/how-to-run-npm-without-sudo/
fuente
Puede instalar npm a través del administrador de versiones de Node o un instalador de Node. En los documentos decía:
Dado que tiene el error de permiso , probablemente instaló npm a través de un instalador de Nodo y ahora necesita reinstalarlo con un nvm (administrador de versión de nodo).
Afortunadamente, esto es muy simple. Ni siquiera necesita eliminar su versión actual de npm o Node.js.
Todo lo que necesitas hacer es
Instalar nvm. Para el uso del nodo OSX o Linux:
Esto crea una carpeta nvm en su directorio de inicio.
Luego
Instale npm y node.js a través de nvm. Para hacerlo, solo llame
Ahora puede instalar el paquete en todo el mundo sin necesidad de utilizar
sudoo cambiar el propietario delnode_modulesenusrcarpeta.fuente
fish, para que funcione correctamente nvm necesita una envoltura de pescado github.com/FabioAntunes/fish-nvmUse este comando para instalar
npmcomo usuario de sudo:en lugar de npm install -g create-react-a pp.
fuente
Pude solucionar el problema usando lo siguiente en mac.
fuente
Para usuarios nvm
y
reemplace
v8.9.1con su versión de nodo que está utilizando.fuente
sudo chown -R $USER home/samuel/.nvm/versions/node/v8.10.0/lib/node_modulesParece que intentó instalar un paquete npm globalmente en lugar de localmente, como se
man npm installdescribe a continuación:Generalmente, cuando está configurando un proyecto npm (entre muchos otros que podría tener), no es una buena idea instalar paquetes en los módulos globales de Node.js (/ usr / local / lib / node_modules), como su registro de depuración sugirió.
En lugar de usar
-g, use--save, que guardará automáticamente el paquete como una dependencia para supackage.jsonarchivo:Me gusta esto:
Pero como se mencionó en las otras respuestas, si va a usar
-g, debe usarsudo( si su usuario tiene privilegios de sudo: vea / etc / sudoers ) al realizarnpm install express-generator -g, pero de hecho, no es una buena idea, posiblemente causando problemas de permisos.AVISO
Hay instrucciones para instalar
express-generatorcon la-gopción, para tener el scriptexpress-cli.jsdisponible en la ruta del sistema, pero también puede usar el script instalado localmente, ubicado en elnode_modulesproyecto if npm:En mi humilde opinión, usar
-g(también usarsudo) es como hic sunt dracones , si no estás seguro de las consecuencias.Para mayor información:
fuente
Esto ocurrió como resultado de
npmno poder acceder a sunode_modulesdirectorio global localmente, ejecutandop.ej
soluciona el problema, ahora puede ejecutar el comando que ejecutó nuevamente.
fuente
Simplemente puede cambiar el propietario o simplemente usar sudo antes de ordenar así
sudo chown -R [owner]:[owner] /usr/local/lib/node_modules( cambiar de propietario )o
Eso es.
fuente
Para linux / ubuntu si el comando
npm install -g <package_name>Solución: instalar con permisos de root
sudo npm install <package_name> -gfuente
Necesita el permiso de los niveles de superusuario para instalar React. En Linux / Unix, la cuenta de superusuario generalmente se denomina 'root'.
Para obtener el privilegio de superusuario, simplemente ejecute el siguiente comando en su terminal:
y luego simplemente ejecute el comando para instalar React:
Sin embargo, el equipo reactjs nos anima a usar el siguiente comando en lugar de instalar un paquete global.
fuente
create-react-appnecesitan privilegios de root para instalarse como paquetes globales; de lo contrario, no podrá instalarlo. Sin embargo, el equipo reactjs nos anima a usar el siguiente comando ennpx create-react-app app_namelugar de instalar un paquete global.sudo chown -R $ USER / usr / local / lib / node_modules
fuente
Solo ayudó esto:
fuente
Después de una larga investigación, entendí que Mac OS no necesita nada para instalar angular cli, solo use
sudo npm install -g @angular/clisu terminal y le pedirá que ingrese su contraseña, procederá a instalar cli. Funcionó para mi.fuente
Similar a la respuesta de POsha pero esto es lo que funcionó para mí en ubuntu 19
Desde este enlace
https://github.com/inconshreveable/ngrok/issues/429
fuente
Si está ejecutando Linux (es decir: Arch)
Por defecto, este comando instala el paquete en / usr / lib / node_modules / npm y requiere privilegios de root para hacerlo.
Para permitir instalaciones para todo el usuario
Para permitir instalaciones de paquetes globales para el usuario actual, configure la
npm_config_prefixvariable de entorno. Esto es utilizado tanto por npm como por hilo.Vuelva a iniciar sesión o fuente para actualizar los cambios.
También puede especificar el
--prefixparámetro paranpm install. Sin embargo, esto no se recomienda, ya que deberá agregarlo cada vez que instale un paquete global.Por lo tanto, no tiene que pedir permiso de carpeta
fuente
Pude deshacerme de este problema instalando
nvm, luego configurando el nodo a la última versión.nvmusandocurl(para la última versión, vaya a nvm.sh )Después de seguir los comandos anteriores, podrá instalar react / angular en Ubuntu.
fuente
Use 'sudo npm install xyz' funcionará.
fuente
Simplemente agregue "sudo" antes del comando npm. Eso es.
fuente
He usado sudo, pero no resolvió el problema, lo solucioné cambiando el permiso de la carpeta node_modules,
Si lo desea, puede reemplazar 777 con cualquier otro código si no establece el permiso para todos los usuarios / grupos.
fuente
Para aquellos de ustedes que aún no pueden solucionar el problema después de usar las soluciones mencionadas anteriormente. Prueba esto
Eso debería hacer el truco, ¡salud!
fuente