解决Mac下npm权限问题
前言
在学习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
以上。
解决Mac下npm权限问题的更多相关文章
- 解决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 ...
- 解决mac下安装yeoman时没有权限问题
在mac下安装yeoman经常会出现如下图错误: 解决办法:在命令行执行-- sudo chown -R $USER /usr/local/lib/node_modules 回车就OK
- 解决Mac下SublimeLinter的Unsafe Characters警告
Mac下编辑JS文件, 如果是中文字符的行会警告: This character may get silently deleted by one or more browsers. SublimeLi ...
- mac下npm/node的安装和卸载、升级;node、npm升级后最后删掉node_modules重新安装
mac还是使用brew install简单一些:最好使用一种安装方式,不要多种方式互用: 更新npm到最新版本npm install -g npm更新npm到指定版本 npm -g install n ...
- 解决Mac下AndroidStudio内容时卡顿
Mac下AndroidStudio在写代码的时候出现卡顿,小圆圈会一直转,此时我们应该检查下AndroidStudio的内存使用情况了. 1.点击左上角 AndroidStudio -- Prefer ...
- 解决Mac下idea运行速度慢
刚入手Mac,发现Mac下使用idea进行调试极其慢,然后发现和本地回环地址有关: 只需稍微修改hosts文件即可: sudo vim /etc/hosts,在localhost后面追加你的电脑名.l ...
- 解决MAC下ctags -R无效的问题
MAC下自带了ctags,与我们常用的是不同的. 我们需要去重新下载一个ctags并重新安装 1.去http://ctags.sourceforge.net/下载Ctags的最新版本源代码 2.tar ...
- 解决Mac下sed命令报错的问题
在Mac上准备批量替换一些文字,使用sed命令,如下: sed -i 's/xxx/yyy/g' file 同样的命令在Linux上是可以成功运行的,注意Mac下man sed中-i参数的说明: 原来 ...
- Mac下没有权限启动tomcat的解决办法
问题描述 在Mac中通过./startup.sh执行启动脚本文件,启动tomcat时报如下错误: -bash: ./startup.sh: Permission denied 解决方法 错误信息说明了 ...
随机推荐
- 20155310 2016-2017-2 《Java程序设计》第一周学习总结
20155310 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 通过对第一章第二章的学习我了解到了JVM.JRE与JDK的重要性,并且下载.安装并测试了JD ...
- 20155318Java课堂实践20170510
20155318Java课堂实践20170510 修改教材P98 Score2.java 让执行结果数组填充是自己的学号:提交在IDEA或命令行中运行结查截图,加上学号水印,没学号的不给成绩 代码 p ...
- HTTP结构讲解——《HTTP权威指南》系列
HTTP结构 第二部分的5章主要介绍了HTTP服务器,代理,缓存,网关和机器人应用程序,这些都是Web系统架构的构造模块. Web服务器 第五章 Web服务器会对HTTP请求进行处理并提供响应.术语& ...
- java 中的字符串
创建String对象 String s1="xxx"://创建一个字符串对象“xxx”,名为s1; String s2=new String();//创建一个空字符串对象,名为S2 ...
- Eclipse 无法编译 或 提示“错误: 找不到或无法加载主类”
project显示一个红色叹号,通常是.jar文件缺失,在下面找到配置 在libraries中添加add External JARs添加.jar文件
- idea项目 run、debug变灰色的问题
点击如图所示位置的下来三角按钮,然后选择Edit Configurations,或者点击菜单栏Run>Edit Configurations 2 在运行配置窗口,选择一条springboot的运 ...
- eclipse Unable to read repository 花了三天时间,吐血解决
安装eclipse 的 swt examples插件时出现这个错误 查了三天,发现就是网速太慢,导致下载一半下不动出错,原因大概是因为国外吧 于是想看看能不能通过离线安装插件包的方式 问题来了,插件包 ...
- JavaFX学习笔记——ControlsFX控件集学习——ToggleSwitch和BreadCrumbBar例子
ToggleSwitch ToggleSwitch ts = new ToggleSwitch("开"); 效果 BreadCrumbBar BreadCrumbBar<St ...
- 解决webstorm中测试dva项目run start命令需要不断重启问题
用dva-cli构建了项目之后在webstorm开发,用npm start跑本地服务,经常修改之后在浏览器刷新没反应,偶尔才会有刷新,需要重新跑一遍npm start才会更新,这是怎么回事呢? web ...
- 写一个脚本批量转换项目中GB2312编码的文件为UTF-8编码
#!/bin/bash convert_file() { for file in `find .` do if [[ -f $file ]] then if [[ ${file##*.} == lua ...