npm下载权限不足问题解决
npm下载权限不足问题解决
在使用npm下载包时老是出错
npm ERR! code EPERM
npm ERR! syscall open
npm ERR! path D:\nodejs\node_cache\_cacache\tmp\35eb6bad
npm ERR! errno EPERM
npm ERR! FetchError: Invalid response body while trying to fetch http://registry.npm.taobao.org/vue: EPERM: operation not permitted, open 'D:\nodejs\node_cache\_cacache\tmp\35eb6bad'
npm ERR! at D:\nodejs\node_modules\npm\node_modules\minipass-fetch\lib\body.js:162:15
npm ERR! at async View.getData (D:\nodejs\node_modules\npm\lib\view.js:210:20)
npm ERR! at async View.view (D:\nodejs\node_modules\npm\lib\view.js:124:28)
npm ERR! FetchError: Invalid response body while trying to fetch http://registry.npm.taobao.org/vue: EPERM: operation not permitted, open 'D:\nodejs\node_cache\_cacache\tmp\35eb6bad'
npm ERR! at D:\nodejs\node_modules\npm\node_modules\minipass-fetch\lib\body.js:162:15
npm ERR! at async View.getData (D:\nodejs\node_modules\npm\lib\view.js:210:20)
npm ERR! at async View.view (D:\nodejs\node_modules\npm\lib\view.js:124:28) {
npm ERR! code: 'EPERM',
npm ERR! errno: 'EPERM',
npm ERR! syscall: 'open',
npm ERR! path: 'D:\\nodejs\\node_cache\\_cacache\\tmp\\35eb6bad',
npm ERR! type: 'system'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It's possible that the file was already in use (by a text editor or antivirus),
npm ERR! or that you lack permissions to access it.
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
提供几种如下解决方案,分两个平台(win和Linux)来说明
win
使用管理员身份运行cmd(不推荐)
每次安装包,都要以管理员身份运行cmd,有点麻烦
删除npmrc文件(不推荐)
如果自己本身就是管理员权限,因而无用
需要删除npmrc文件。
强调:不是nodejs安装目录npm模块下的那个npmrc文件
而是在C:\Users\用户名
下的.npmrc
文件
清除缓存(没成功)
用命令清除缓存的,我自己试了下没成功,放弃(都没成功,说什么放弃),上面删除文件起码成功了。
cmd中运行npm cache clean --force
更改文件夹权限(推荐)
每次安装都要用管理员身份运行,主要因为安装nodejs时没有授予写的权限,找到nodejs安装文件夹更改权限即可。
右键nodejs安装文件夹>>>属性>>>安全>>>编辑>>>选择用户>>>勾选写入权限
>>>应用
Linux
直接在前面加sudo
sudo npm install <包>