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 <包>