我运行npm install lodash但它抛出错误:EACCES:权限被拒绝错误.我知道这是权限问题,但据我所知,本地安装节点模块不需要sudo权限.如果我用sudo运行它,它将被安装在〜/ node_modules文件夹中.drwxrwxr-x是现有文件夹的文件权限.我无法弄清楚可能出了什么问题.
以下是错误消息.
npm ERR! tar.unpack untar error /home/rupesh/.npm/lodash/4.13.1/package.tgz
npm ERR! Linux 3.13.0-88-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "lodash"
npm ERR! node v4.3.1
npm ERR! npm v2.14.12
npm ERR! path /home/rupesh/node_modules/lodash
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir
npm ERR! Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash'
npm ERR! at Error (native)
npm ERR! { [Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash']
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/home/rupesh/node_modules/lodash',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR! 'FSReqWrap.oncomplete (fs.js:82:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /home/rupesh/Desktop/es6/npm-debug.log
Run Code Online (Sandbox Code Playgroud)
San*_*shi 41
此命令可解决此问题.它对我有用:
sudo npm install -g --unsafe-perm=true --allow-root
Run Code Online (Sandbox Code Playgroud)
Vis*_*tel 37
我在全球范围内安装webpack服务器时遇到同样的问题,使用此Url中的步骤解决了我的问题,我的工作对你而言.
上面提到的步骤:在开始之前备份计算机.
为全局安装创建一个目录:
1.
mkdir ~/.npm-global
配置npm以使用新的目录路径:
2.
npm config set prefix '~/.npm-global'
打开或创建一个〜/ .profile文件并添加以下行:
3.
export PATH=~/.npm-global/bin:$PATH
返回命令行,更新系统变量:
4.
source ~/.profile
测试:在不使用sudo的情况下全局下载软件包.
npm install -g jshint
Run Code Online (Sandbox Code Playgroud)
您可以使用相应的ENV变量代替步骤2-4(例如,如果您不想修改〜/ .profile):
NPM_CONFIG_PREFIX=~/.npm-global
Run Code Online (Sandbox Code Playgroud)
che*_*zeh 18
sudo chown -R $(whoami) /usr/local/bin
Run Code Online (Sandbox Code Playgroud)
使当前用户成为该/usr/local/bin
文件夹的所有者。该文件夹的权限是问题所在。
Raj*_*hel 13
尝试使用以下命令为您的项目文件夹授予所有权限
sudo chmod -R 777 /yourProjectDirectoryName
Run Code Online (Sandbox Code Playgroud)
运行
sudo npm install lodash
Run Code Online (Sandbox Code Playgroud)
Jua*_*dor 11
它没有others
(rx) 的写权限。试试
chmod a+w <folder>
Run Code Online (Sandbox Code Playgroud)
并重复。
小智 9
我在Linux上有问题。我写
chown -R myUserName ./*
在我的项目文件夹中。
小智 9
这立即解决了我的问题 - mac Mojave 10.14.6 - PhpStorm。
未处理的拒绝错误:EACCES:权限被拒绝,mkdir '/Users/myname/.npm/_cacache/index-v5/fb/5a'
sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config
Run Code Online (Sandbox Code Playgroud)
原帖:https : //stackoverflow.com/a/50639828
一个相关问题:
浪费了3个小时,跨越了几天。
在 AWS EC2 机器上,以下工作:
sudo chown -R $(whoami) /home/ubuntu/.cache
sudo chown -R $(whoami) /home/ubuntu/.config
sudo chown -R $(whoami) /home/ubuntu/.local
sudo chown -R $(whoami) /home/ubuntu/.npm
sudo chown -R $(whoami) /home/ubuntu/.pm2
Run Code Online (Sandbox Code Playgroud)
希望有帮助。
LUBUNTU 19.10 / 运行相同的问题:$ npm start
转储:错误:EACCES:权限被拒绝,在对象处打开“/home/simon/xxx/pagebuilder/resources/scripts/registration/node_modules/.cache/@babel/register/.babel.7.4.0.development.json”。 fs.openSync (fs.js:646:18) at Object.fs.writeFileSync (fs.js:1299:33) at save (/home/simon/xxx/pagebuilder/resources/scripts/registration/node_modules/@babel/ register/lib/cache.js:52:15) at _combinedTickCallback (internal/process/next_tick.js:132:7) at process._tickCallback (internal/process/next_tick.js:181:9) at Function.Module.runMain (module.js:696:11) 在 Object. (/home/simon/xxxx/pagebuilder/resources/scripts/registration/node_modules/@babel/node/lib/_babel-node.js:234:23) at Module._compile (module.js:653:30) at Object .Module._extensions..js (module.js:664:10) 在 Module.load (module.js:566:32)
看起来我的默认用户(管理员)没有节点模块目录的权限。
这为我修好了!
$ sudo chmod a+w node_modules -R ## from project root
如果您收到如下错误
Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/<PackageName>/vendor'
Run Code Online (Sandbox Code Playgroud)
我建议使用以下命令来安装全局包
sudo npm install -g <PackageName> --unsafe-perm=true --allow-root
Run Code Online (Sandbox Code Playgroud)
从我在您的日志中看到的内容,您发布了:
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/home/rupesh/node_modules/lodash',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR! fstream_class: 'DirWriter',
Run Code Online (Sandbox Code Playgroud)
目录/home/rupesh/node_modules/
没有创建目录所需的权限,所以运行chown -r rupesh:rupesh /home/rupesh/node_modules/
它应解决它.
我通过更改 npm 目录的权限解决了这个问题。我去了 npm 全局目录,它位于
/home/<user-name>
Run Code Online (Sandbox Code Playgroud)
我通过输入这个命令进入了这个目录
cd /home/<user-name>
Run Code Online (Sandbox Code Playgroud)
然后通过输入此命令更改 .npm 文件夹的权限。
sudo chmod -R 777 ".npm"
Run Code Online (Sandbox Code Playgroud)
这对我来说就像一种魅力。但是这存在一个安全缺陷,即您的全局包目录可以被所有级别访问。
归档时间: |
|
查看次数: |
127155 次 |
最近记录: |