npm install 时出现的 EACCES: permission denied 错误的可能有效的解决方案
最近我开始接触手机 app 的编写,公司用到了 Nativescript。当我下载了公司的项目后,在配置时出现了不少的问题,其中出现概率最高的就是 EACCES: permission denied 错误。这类错误在 Nativescript 的官网教程中有特别指出,我也按照其中的提示修改文件权限,但还是有很多时候尽管你使用 sudo,依然会出现权限问题。本文将介绍我是如何解决这个问题的,这个问题也不仅仅出现在使用 Nativescript 时,只要你 npm install 时出现的 EACCES: permission denied 错误都可以用以下的解决方案。(欢迎大家留言指出问题,或是解决问题后点个赞)
2019年4月10日更新:之后提到的网站中的内容有所变动,我根据变动修改了前两个截图,后面的文字内容也稍有变动。该网站中提到的方法比我当时解决问题时更多些,大家如果英语水平好的话建议自行研究一下内容,也许能找到更合适的解决方法。我就提供我当时的解决方法的过程记录。
我 clone 了公司项目后,需要执行一系列 npm 的指令进行项目的配置,基本上每个 npm的执行都需要加上 sudo 才能进行一部分,中间还会出现 EACCES: permission denied 错误,这个时候,你首先可以使用 sudo chown -R $(whoami) PATH 直接修改你填写的路径下的所有子文件夹的权限为你可以读取和修改,之后就不需要再用sudo了。
然而这个方法并没有解决我的问题,我在执行 npm platform add ios 时一直有一个错误 command npm --silent --save-exact --save failed with exit code ,然后我意识到我依然没有成功的修改需要修改的权限,主要是这个文件夹:/Users/NAME/.npm-global/lib/node_modules。
然后我找到了 nvm 官方网站教程中为了预防此类权限错误而给的一个文章链接。最开始时我尝试了这篇文章中的第二种方案(Manually change npm’s default directory),其实我直接没注意到还有第一种方案(Reinstall npm with a node version manager),因为第二种方案直接放出来了代码比较醒目。
第一种方案(Reinstall npm with a node version manager)就是本文介绍的重点了,也是我认为最好的解决方法。(点开前面提到的文章链接,就可看到如下图所示)
以下为具体的分步骤讲解:
1. 前面这个链接中的这个方法有一小段文字说明,其中给的链接("Downloading and installing Node.js and npm")指向另一章节,当你点开之后,需要将页面拉至下方 Using a version manager to install Node.js and npm 处,你可以直接查找这段文字。(以下为截图)
2. 选择你对应系统的相关链接,我是 mac 系统,选择了箭头所指的链接,点击后你会看到:
3. 上面页面里解释的很详细,在执行完 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash 后,终端会有提示说你可以重启终端或者执行以下语句使 nvm 可用,我尝试过重启,nvm 并没有配置好,所以还是需要将给出的提示命令全部复制执行一下,然后执行 nvm --version ,如果输出了版本型号则成功了。
4. 最开始提到的第一种方法是需要安装 nvm 然后再重装 Node.js,现在我们已经安装好了 nvm,那么就需要执行 nvm install node ,终端会提示这与之前提到的第二种方法里设置的 prefix 冲突,需要执行某某语句来删除这个 prefix,你就按照提示删除(我没截图并且关了窗口,所以只能描述大概记得的)。
5. 需要再次执行 npm install 时,如果依然出现 EACCES: permission denied 在项目的 /node_modules 下,则删除项目下 node_modules 文件夹,然后再执行 npm install 重新生成 node_modules 文件夹应该就没有问题了。
小结
两个关键命令 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash 和 sudo chown -R $(whoami) /Users/$(whoami)/.npm-global/lib/node_modules 。后面这个命令只是针对个别情况,大家按个人需求判断是否需要执行。如果没看懂我写的,建议再仔细看看我给出的英文官方网站。
npm install 时出现的 EACCES: permission denied 错误的可能有效的解决方案的更多相关文章
- 解决华为手机图片选择无效及产生的open failed: EACCES (Permission denied)错误
在华为手机上调起图片选择时原来的效果如下 原来的代码是 Intent intent = new Intent(); intent.setAction(Intent.ACTION_GET_CONTENT ...
- npm安装node-sass失败,EACCES: permission denied
增加--unsafe-perm,即 sudo npm install node-sass --unsafe-perm --save-dev 成功安装node-sass
- VSCODE更改文件时,提示EACCES permission denied的解决办法(mac电脑系统)
permission denied:权限问题 具体解决办法: 1.在项目文件夹右键-显示简介-点击右下角解锁 2.权限全部设置为读与写 3.最关键一步:点击"应用到包含的项目",这 ...
- Android 6.0以后的版本报错:open failed: EACCES (Permission denied)
Android 6.0以后的版本报错:open failed: EACCES (Permission denied) 在开发项目中,遇见要进行文件操作,遇见Caused by: android.sys ...
- npm install Error: EACCES: permission denied, mkdir
今天研究Electron的时候,全局安装运行 npm install electron -g时侯,报下面的错误: Error: EACCES: permission denied, mkdir '/U ...
- EACCES: permission denied,mkdir … npm install 安装依赖问题解决
强哥最近在用hugeGraph图库做二次开发的时候,在打包的时遇到前端项目打包失败的问题: cwebp-bin@4.0.0 postinstall /home/hugegraph/my-hugegra ...
- npm install 报错,提示`gyp ERR! stack Error: EACCES: permission denied` 解决方法
m install 报错,提示gyp ERR! stack Error: EACCES: permission denied 猜测可能是因为没有权限读写,ls -la看下文件权限设置情况 [root@ ...
- npm安装报错:Error: EACCES: permission denied
报错如下: sudo npm i webpack -g /Users/xesfe/.npm-global/bin/webpack -> /Users/xesfe/.npm-global/lib/ ...
- Error: EACCES: permission denied, mkdir '......node-sass/build'错误解决方案
安装node-sass时出现一下错误: gyp ERR! configure error gyp ERR! stack Error: EACCES: permission denied, mkdir ...
随机推荐
- 工具资源系列之给mac装个虚拟机
mac 系统安装虚拟机目前有两种主流软件,一种是 Parallels Desktop ,另一种是 vmware. 本教程选用的是 vmware ,因为我之前 windows 上安装的虚拟机软件就是vm ...
- Kubernetes入门-集群安装
Kubernetes是谷歌开源的容器集群编排平台,是一个完备的分布式系统支撑平台,为容器化应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,具有强大的故障发现和自我修复机制.服务滚动升级 ...
- php分页数据最后一页继续追加第一页数据
之前做数据分页遇到这样一个需求,就是数据到最后一页的时候不能中断,继续把第一页的数据追加到后面,无限显示下去. 原文地址:代码汇个人博客 http://www.codehui.net/info/23. ...
- Conway生命游戏
版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/9986679.html 作者:窗户 Q ...
- leetcode 54. Spiral Matrix 、59. Spiral Matrix II
54题是把二维数组安卓螺旋的顺序进行打印,59题是把1到n平方的数字按照螺旋的顺序进行放置 54. Spiral Matrix start表示的是每次一圈的开始,每次开始其实就是从(0,0).(1,1 ...
- 彻底搞懂spark的shuffle过程(shuffle write)
什么时候需要 shuffle writer 假如我们有个 spark job 依赖关系如下 我们抽象出来其中的rdd和依赖关系: E <-------n------, ...
- 前端开发 JavaScript 规范文档
一,规范目的 为提高团队协作效率,便于前端后期优化维护,输出高质量的文档. 二.基本准则 符合web标准,结构表现行为分离,兼容性优良.页面性能方面,代码要求简洁明了有序, 尽可能的减小服务器负载,保 ...
- centos6.8 搭建postfix/dovecot邮件服务器
postfix/dovecot邮件服务器 安装配置参考链接 http://www.cnblogs.com/jkklearn/p/7280045.html (domain 为自己域名 xxx.com) ...
- 关于配置ssh免密码登录后,仍提示输入密码
一.在A端创建密钥对: [root@A ~] -P '' 二.如果B机器没有.ssh和authorized_keys文件则创建这个文件夹和文件先,创建后要chown改成当前用户的所属者,其次也要改: ...
- 菜鸟学IT之python网页爬取多页爬取
作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3002 0.从新闻url获取点击次数,并整理成函数 newsUrl news ...