write warn usr permission node_modules node missing lib error eacces checkpermissions acorn node.js reactjs npm install

node.js - error - npm warn checkpermissions missing write access to/usr/local/lib/node_modules



Error: EACCES: permiso denegado, acceso ''/ usr/local/lib/node_modules'' reacciona (16)

¿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


Al instalar paquetes globales en ubuntu , necesita permisos de escritura especiales mientras escribe en la carpeta usr/bin . Es por razones de seguridad. Entonces, cada vez que instale un paquete global, use:

sudo npm install -g [package-name]

Para su caso específico, será:

sudo npm install -g typescript


Encuentro un problema similar con el módulo webpack. Mi solución: eliminar la carpeta node_modules rm -rf node_modules y ejecutar npm i sin sudo: la instalación debería funcionar.


Estaba tratando de instalar react expo y aparte de sudo tuve que agregar --unsafe-perm

Me gusta esto. Esto resuelve mi problema

sudo npm install -g expo-cli --unsafe-perm


He usado sudo, pero no resolvió el problema, he solucionado el problema cambiando el permiso de la carpeta node_modules,

sudo chmod -R 777 node_modules

Si lo desea, puede reemplazar 777 con cualquier otro código si no establece el permiso para todos los usuarios / grupos.


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:

sudo i

y luego simplemente ejecute el comando para instalar React:

npm install -g create-react-app


Para minimizar la posibilidad de errores de permisos, puede configurar npm para usar un directorio diferente. En este ejemplo, creará y utilizará 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-global Configure npm para usar la nueva ruta de directorio: npm config set prefix ''~/.npm-global'' en su editor de texto preferido , abra o cree un archivo ~/.profile y agregue esta línea: export PATH=~/.npm-global/bin:$PATH En la línea de comando, actualice las variables del sistema: source ~/.profile Para probar su nueva configuración, instalar un paquete globalmente sin usar sudo


Parece que te encuentras con problemas de permisos. Si está instalando npm-packages , es posible que obtenga un error EACCES cuando intente instalar un paquete globalmente. Esto significa que no tiene permiso para escribir en los directorios que npm usa para almacenar paquetes y comandos globales.

Intente ejecutar comandos: sudo chmod u+x -R 775 ~/.npm y sudo chown $USER -R ~/.npm o simplemente puede ejecutar cualquier comando npm con sudo , eso debería resolver su problema.

Si está instalando un npm-package localmente, entonces debe estar en el directorio de su proyecto local y puede intentar ejecutar el sudo npm install <pkg-name> para instalar el paquete requerido. El propósito de usar sudo es que cambiará los permisos de su propietario para que pueda autorizar a su usuario actual a ejecutar comandos npm .

Le recomiendo que eche un vistazo a https://docs.npmjs.com/getting-started/fixing-npm-permissions


Parece que trató de instalar un paquete npm globalmente en lugar de localmente, como describe la man npm install :

El argumento -g o --global hará que npm instale el paquete globalmente en lugar de localmente.

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 su archivo package.json :

Me gusta esto:

$ npm install express-generator --save $ cat package.json { "name": "first_app_generator", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo /"Error: no test specified/" && exit 1" }, "author": "ivanleoncz", "license": "MIT", "dependencies": { "express-generator": "^4.16.0" } }

Pero como se mencionó en las otras respuestas, si va a usar -g , debe usar sudo ( si su usuario tiene privilegios de sudo: vea / etc / sudoers ) al realizar npm install express-generator -g , pero de hecho, es No es una buena idea, posiblemente causando problemas de permisos.

DARSE CUENTA

Hay instrucciones para instalar express-generator con la opción -g , para que el script express-cli.js esté disponible en la ruta del sistema, pero también puede usar el script instalado localmente, ubicado en node_modules si su proyecto npm:

$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp

Si aparece un mensaje como / usr / bin / env: ''nodo'': no aparece dicho archivo o directorio , instale nodejs-legacy (Debian / Ubuntu)

En mi humilde opinión, usar -g (también usando sudo ) es como hic sunt dracones , si no estás seguro de las consecuencias.

Para mayor información:


Pude deshacerme de este problema instalando nvm y luego configurando el nodo a la última versión.

  1. Instale nvm usando curl (para la última versión vaya a nvm.sh )

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

  1. Lista de versiones de nodo disponibles

nvm ls

v10.12.0
predeterminado -> v10.12 (-> v10.12.0)
nodo -> estable (-> v10.12.0) (predeterminado)
estable -> 10.12 (-> v10.12.0)
...

  1. Elija qué versión de nodo usar

nvm use v10.12

nvm no es compatible con la opción "prefijo" de la configuración npm: actualmente configurado en ""

  1. Ejecute esto para desactivar la opción:

nvm use --delete-prefix v10.12.0

Después de seguir los comandos anteriores, podrá instalar react / angular en Ubuntu.


Simplemente puede cambiar el propietario o simplemente usar sudo antes de ordenar así

sudo chown -R [owner]:[owner] /usr/local/lib/node_modules ( cambiar propietario )

o

sudo npm install -g json-server

Eso es.


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/


Todo lo que necesita hacer es agregar USUARIO al propietario de / local / lib

sudo chown -R $USER /usr/local/lib


Use este comando para instalar npm como usuario de sudo:

sudo npm install -g create-react-app

en lugar de npm install -g create-react-a pp.


cambia los permisos de tu archivo ... así

primero verifique quién posee el directorio

ls -la /usr/local/lib/node_modules

está negando acceso porque la carpeta node_module es propiedad de root

drwxr-xr-x 3 root wheel 102 Jun 24 23:24 node_modules

así que esto debe cambiarse cambiando la raíz a su usuario, pero primero ejecute el comando a continuación 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?

id -un

O

whoami

luego cambia de dueño

sudo chown -R [owner]:[owner] /usr/local/lib/node_modules

O

sudo chown -R ownerName: /usr/local/lib/node_modules


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 usuarios o programas 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.


Si enfrenta este problema en su Mac. Sigue estos pasos

Primero verifique quién es el propietario de este archivo utilizando el siguiente comando

ls -la /usr/local/lib/node_modules

encontrará un archivo como el siguiente, uno de ellos está debajo

drwxr-xr-x 3 rueda raíz 768 29 de mayo 02:21 node_modules

¿Ha notado que el archivo anterior es propio de la raíz, para realizar cambios en el interior, debe cambiar el propietario de la ruta de acceso?

puede usar verificar quién es el usuario actual con este comando

id -un (in my case user is yamsol)

y luego puede cambiar llamando a este comando (simplemente reemplace su nombre de usuario con ownerName)

sudo chown -R ownerName: /usr/local/lib/node_modules

en mi caso, como sabes, el usuario es "yamsol" llamaré a este comando de esta manera

sudo chown -R yamsol: /usr/local/lib/node_modules

Eso es.