前言

  在学习Vue-CLI3的时候使用了全局安装,提示安装失败,本以为是npm版本问题,在更新npm的过程中又出现了 npm ERR! code: 'EACCES' ,查了一下发现是权限问题。

  看到权限不足第一反应就是使用 sudo,  sudo 确实能解决一些权限问题,但却不是最好的解决方案。

正文

  官方给出两种方法 :

  使用node版本管理器重新下载npm(Reinstall npm with a node version manager)

或者

  手动修改npm的默认目录(Manually change npm’s default directory)

------------------------------------分割线------------------------------------

  先说第一种方法,我这里是用的是 nvm。

安装命令:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

or Wget:

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

  安装好会提示重新启动终端,重启之后输入  nvm --version  , 显示版本号则说明安装成功。

  如果显示  command not found: nvm  可能是nvm没安装好,还有可能是缺少 .bash_profile 文件。

  在home目录创建 .bash_profile 文件 (cd ~  , touch .bash_profile),写入

export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

保存以后重新运行安装命令,安装后重启终端即可。 我运行  npm install -g @vue/cli  可以下载了。

  第二种方法,手动修改npm的默认目录(具有读写权限的目录),如下

  1.创建全局目录

 mkdir ~/.npm-global

  2.配置npm使用新路径

npm config set prefix '~/.npm-global'

  3.打开或创建一个~/.profile文件并添加以下代码

export PATH=~/.npm-global/bin:$PATH

  4.在命令行上,更新系统变量

source ~/.profile

  5.测试新配置,不用sudo全局下载安装包

npm install -g jshint

不想使用 2-4,还可以使用相应的环境变量(例如,你不想修改~/.profile)来实现

NPM_CONFIG_PREFIX=~/.npm-global

参考资料:

Resolving EACCES permissions errors when installing packages globally

Downloading and installing Node.js and npm

nvm

以上。

解决Mac下npm权限问题的更多相关文章

  1. 解决Mac下Sequel Pro 1.1 连接 Homebrew安装Mysql5.7.8的问题 Sequel Pro 1.1 encountered an unexpected error

    解决Mac下Sequel Pro 1.1 连接 Homebrew安装Mysql5.7.8的问题 Sequel Pro encountered an unexpected error Sequel Pr ...

  2. 解决mac下安装yeoman时没有权限问题

    在mac下安装yeoman经常会出现如下图错误: 解决办法:在命令行执行-- sudo chown -R $USER /usr/local/lib/node_modules 回车就OK

  3. 解决Mac下SublimeLinter的Unsafe Characters警告

    Mac下编辑JS文件, 如果是中文字符的行会警告: This character may get silently deleted by one or more browsers. SublimeLi ...

  4. mac下npm/node的安装和卸载、升级;node、npm升级后最后删掉node_modules重新安装

    mac还是使用brew install简单一些:最好使用一种安装方式,不要多种方式互用: 更新npm到最新版本npm install -g npm更新npm到指定版本 npm -g install n ...

  5. 解决Mac下AndroidStudio内容时卡顿

    Mac下AndroidStudio在写代码的时候出现卡顿,小圆圈会一直转,此时我们应该检查下AndroidStudio的内存使用情况了. 1.点击左上角 AndroidStudio -- Prefer ...

  6. 解决Mac下idea运行速度慢

    刚入手Mac,发现Mac下使用idea进行调试极其慢,然后发现和本地回环地址有关: 只需稍微修改hosts文件即可: sudo vim /etc/hosts,在localhost后面追加你的电脑名.l ...

  7. 解决MAC下ctags -R无效的问题

    MAC下自带了ctags,与我们常用的是不同的. 我们需要去重新下载一个ctags并重新安装 1.去http://ctags.sourceforge.net/下载Ctags的最新版本源代码 2.tar ...

  8. 解决Mac下sed命令报错的问题

    在Mac上准备批量替换一些文字,使用sed命令,如下: sed -i 's/xxx/yyy/g' file 同样的命令在Linux上是可以成功运行的,注意Mac下man sed中-i参数的说明: 原来 ...

  9. Mac下没有权限启动tomcat的解决办法

    问题描述 在Mac中通过./startup.sh执行启动脚本文件,启动tomcat时报如下错误: -bash: ./startup.sh: Permission denied 解决方法 错误信息说明了 ...

随机推荐

  1. 20155222 2016-2017-2 《Java程序设计》实验三

    20155222 2016-2017-2 <Java程序设计>实验三 1 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单 ...

  2. 20155307 2016-2017-2《Java程序设计》课程总结

    预备作业1 预备作业1 预备作业1 第1周作业 第2周作业 第3周作业 第4周作业 第5周作业 第6周作业 第7周作业 第8周作业 第9周作业 第10周作业 自认为写得最好一篇博客是?为什么? 是这篇 ...

  3. 20155339 2016-2017-2 《Java程序设计》第4周学习总结

    20155339 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 继承.多态与is-a 继承就是避免多个类间重复定义共同行为. 可以把相同的成粗代码提升为父类 ...

  4. python的种类

    Cpython     Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上. Jyhton   ...

  5. 数据库表,id自动递增重置,从1开始

    问题: 删除数据表的数据后,发现下次插入数据,主键id并没有重置,还是在原来基础上继续增加 解决: ; TRUNCATE table table_name; ; 参考: https://stackov ...

  6. OKHttp使用demo(证书过滤,证书导入,代理访问,文件上传)

    此demo需要引入okhttp-3.4.1.jar 和 okio-1.9.0.jar(这两个包需要jdk1.7以上的环境) 对应pom文件是: <dependency> <group ...

  7. ython进阶06 循环对象

    这一讲的主要目的是为了大家在读Python程序的时候对循环对象有一个基本概念. 循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标 ...

  8. HTML从入门到放弃

    一.HTML 简介 链接:https://www.cnblogs.com/baishuchao/articles/9179920.html 二.HTML 基础 链接:https://www.cnblo ...

  9. Spark之编程模型RDD

    前言:Spark编程模型两个主要抽象,一个是弹性分布式数据集RDD,它是一种特殊集合,支持多种数据源,可支持并行计算,可缓存:另一个是两种共享变量,支持并行计算的广播变量和累加器. 1.RDD介绍 S ...

  10. 高可用Kubernetes集群-9. 部署kubelet

    十一.部署kubelet 接下来两个章节是部署Kube-Node相关的服务,包含:kubelet,kube-proxy. 1. TLS bootstrap用户授权 # kubelet采用TLS Boo ...