簡體   English   中英

錯誤:EACCES:嘗試使用 npm 安裝 ESLint 時權限被拒絕

[英]Error: EACCES: permission denied when trying to install ESLint using npm

我正在嘗試通過以下方式使用 npm 安裝ESLint

npm install -g eslint

但是我收到以下錯誤:

Deans-Air:~ deangibson$ npm install -g eslint
npm ERR! tar.unpack untar error /Users/deangibson/.npm/eslint/2.4.0/package.tgz
npm ERR! Darwin 15.3.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "eslint"
npm ERR! node v4.2.3
npm ERR! npm  v2.14.7
npm ERR! path /usr/local/lib/node_modules/eslint
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/eslint'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/eslint']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/usr/local/lib/node_modules/eslint',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/usr/local/lib/node_modules/eslint',
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!     /Users/deangibson/npm-debug.log

老實說,我每次嘗試用 npm 安裝東西時都會得到這個。 有時使用 'sudo' 有效,有時則無效……我怎樣才能一勞永逸地解決這個問題?

npm install 中使用--unsafe-perm=true--allow-root標志,如下所示:-

sudo npm install -g eslint --unsafe-perm=true --allow-root

它對我來說很有魅力。

這個問題在npm 文檔中有詳細記錄:修復 npm 權限

您有 2 個可用的解決方案:

選項 1 :將 npm 的默認目錄更改為您的主文件夾中的隱藏目錄

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
source ~/.profile

選項 2 :使用為您處理此問題的包管理器

brew install node

運行以下命令在安裝我的 packages.json 時為我解決了這個問題:

 sudo npm install --unsafe-perm=true --allow-root

僅安裝導致問題的軟件包:

  sudo npm install -g --unsafe-perm=true --allow-root eslint

試試這個命令 sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules}

\n

這將更改npm和其他一些工具(lib / node_modules,bin和share)使用的子文件夾的所有權。

更新

按照其他用戶的建議關注此鏈接

sudo npm install -g --unsafe-perm=true eslint

足夠了。

在 tns 之前使用sudo對我有用

例子:

sudo tns create Tekmo --template tns-template-hello-world

如果我使用過 sudo 然后沒有發現錯誤,比如創建postinstall.js

錯誤:EACCES:權限被拒絕

您可以使用sudo su以 root 身份登錄。 首先在您的終端上運行命令sudo su ,然后提供您的登錄密碼。 最后執行您預期的命令npm install -g eslint 這個對我有用。

對於 MAC 用戶提供對項目目錄文件夾的訪問權限

  1. 右鍵單擊項目目錄文件夾
  2. 選擇獲取信息
  3. 提供訪問權限 - 應用於封閉項目

伙計們,我已經簡單地修復了它

sudo npm install

我試過最好的答案,它也很好用。

只是在運行時遇到了同樣的錯誤

npm install -g @ionic/cli native-run cordova-res

要修復,請運行以下命令

sudo apt update
sudo apt upgrade -y

我已經閱讀了已經存在的解決方案,但認為還有別的東西,UNSAFE 不是一個安全的關鍵字,哈哈。 在使用 --unsafe-perm=true 運行命令時,我注意到它下載了似乎是更新二進制文件的內容。 所以,我更新並再次嘗試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM