npm安装权限被拒绝(macOS)

时间:2018-08-22 12:52:11

标签: node.js npm npm-install

要安装Bootstrap主题,我想运行npm install。但是,我总是收到一个权限被拒绝的错误。

我已经尝试过nvm,然后与nvm use 10.9.0切换以运行npm install

我还尝试了sudo chown -R $(whoami) ~/.npmsudo chown -R $USER /usr/local/lib/node_modules。两者都没有解决,现在我不知道该如何继续。我使用macOS High Sierra。

Marcs-MBP-3:masterclass Marc$ npm install
npm WARN deprecated gulp-uglifyjs@0.6.2: Since gulp-sourcemaps now works, use gulp-uglify instead
npm WARN deprecated babel-preset-es2015@6.24.1:   Thanks for using Babel: we recommend using babel-preset-env now: please read babeljs.io/env to update! 
npm WARN deprecated browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
npm WARN checkPermissions Missing write access to /Users/Marc/Desktop/Dev/masterclass/node_modules
npm ERR! path /Users/Marc/Desktop/Dev/masterclass/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/Users/Marc/Desktop/Dev/masterclass/node_modules'
npm ERR!  { [Error: EACCES: permission denied, access '/Users/Marc/Desktop/Dev/masterclass/node_modules']
npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, access \'/Users/Marc/Desktop/Dev/masterclass/node_modules\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/Users/Marc/Desktop/Dev/masterclass/node_modules' }
npm ERR! 
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
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 (though this is not recommended).

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/Marc/.npm/_logs/2018-08-22T12_46_51_786Z-debug.log

8 个答案:

答案 0 :(得分:7)

使用ls -l /Users/Marc/Desktop/Dev/masterclass/检查项目根目录的权限。如果所有者不是$USER,请删除您的node_modules目录,尝试更改该目录的所有者,然后再次运行npm install

cd /Users/Marc/Desktop/Dev
rm -rf ./masterclass/node_mdoules/
chown -R $USER ./masterclass/
cd masterclass    
npm install

答案 1 :(得分:4)

对于Mac;

在终端上运行它>

sudo chown -R $USER /usr/local/lib/node_modules

答案 2 :(得分:1)

请运行以下命令:

  1. 要检查包裹的位置:

    npm config get prefix

  2. 然后运行:

    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

  3. 输入密码并运行安装命令

它对我有用。

答案 3 :(得分:0)

我遇到了类似的问题,但是被接受的答案对我没有用,因此我将发布我的解决方案,以防其他任何人需要它。

在从GitHub克隆的项目中以及克隆期间,我正在运行npm install,无论出于何种原因,都没有在项目目录上实际设置写许可权。要检查这是否是您的问题,请拉起Terminal并输入以下内容:

cd path/to/project/parent/directory
ls -l

如果目录具有用户写访问权限,则输出将在第一组权限中包括一个w

drwxr-xr-x  15 user  staff  480 Sep 10 12:21 project-name

这假定您正在尝试访问当前用户的主目录结构中的项目。要确保当前用户拥有项目目录,请按照接受的答案中的说明进行操作。

答案 4 :(得分:0)

NPM_CONFIG_PREFIX =〜/ .npm-global

将此行复制到ur终端,然后按Enter。然后在npm前面安装不需要的必要软件包,而无需使用“ sudo”一词。

npm install -g jshint

答案 5 :(得分:0)

我输入了以下内容:

cd /Users/Marc/Desktop/Dev
rm -rf ./masterclass/node_mdoules/
chown -R $USER ./masterclass/
cd masterclass    
npm install

完成此操作后,结果将显示警告和一个通知,而不是先前的未获得许可和错误的结果。

然后我输入以下内容:

% sudo npm install --global firebase-tools

我的结果是完成最后一个终端输入后就成功了。

答案 6 :(得分:0)

对我来说,

npm cache clean --force
rm -rf node_modules
npm install

我尝试手动删除,但没有帮助

答案 7 :(得分:0)

我为 nodemon 做了这个并且它工作

sudo chown -R $USER /usr/local/lib/node_modules

然后安装你需要的包