node.js - 錯誤:EACCES:權限被拒絕




lodash (8)

執行這些命令,問題就解決了!

sudo chmod -R 777 /usr/local/bin
sudo chmod -R 777 /usr/local/lib/node_modules

我運行 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

FWIW我有相同的症狀,但有不同的包裝。 創建 package.json 並運行 npm init 沒有 解決我的問題。

在此系統上,顯示此位置中的新文件夾正在使用root權限創建。 在 npm install 期間,將創建新文件夾。 這導致npm安裝中途失敗,即使使用sudo也是如此。

解決方案是在沒有root umask的不同位置運行 npm install app


刪除dist文件夾,這解決了我的問題!!


它沒有 others 寫權限(rx)。 試試吧

chmod a+w <folder>

並重複。


我在Linux上遇到了問題。 我寫

chown -R myUserName ./* 

在我的項目文件夾中。


我在全球範圍內安裝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

您可以使用相應的ENV變量代替步驟2-4(例如,如果您不想修改〜/ .profile):

NPM_CONFIG_PREFIX=~/.npm-global

此命令可解決此問題。 它對我有用:

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

首先在root上沒有-g(全局)安裝。 嘗試使用-g(全局)之後它對我有用。





lodash