解决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 解决方法 错误信息说明了 ...
随机推荐
- 20155233 《Java程序设计》 第十一周课堂练习总结
20155233 <Java程序设计> 第十一周课堂练习总结 测试题目 1.修改教材P74 一行代码 NineNineTable.java, 让执行结果是个三角形: 提交在IDEA或命令行 ...
- 20155337 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
20155337 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验内容及步骤 (一)使用JDK编译.运行简单的java程序 ·命令行下的程序开发 我在windows下 ...
- Ubuntu + apache + Mysql +php
发生了乱码问题: 打开apache配置文件: sudo gedit /etc/apache2/apache2.conf,在最后面加上:AddDefaultCharset UTF-8,如果还乱码,再将U ...
- 【整理总结】代码沉淀 - Caliburn.Micro - MV*模式短小精悍的框架
Caliburn.Micro - Xaml made easy. web: https://github.com/Caliburn-Micro/Caliburn.Microdocument: http ...
- 【转载】OLE控件在Direct3D中的渲染方法
原文:OLE控件在Direct3D中的渲染方法 Windows上的图形绘制是基于GDI的, 而Direct3D并不是, 所以, 要在3D窗口中显示一些Windows中的控件会有很多问题 那么, 有什么 ...
- 海思NB-IOT HI2115芯片电压域的问题
1. 先看模块引脚,利尔达NB86-G模块 2. VDD_IO_R1, VDD_IO_R2, VDD_IO_L1 and VDD_IO_L2 control the IO voltages on PI ...
- XAF-属性编辑器中的EditMask,DisplayFormat格式化字符串该如何设置
XAF项目中有个DisplayFormat和EditMask设置,其中: 任何地方看到的DisplayFormat都是用于显示时,即非修改状态的编辑器,显示值的格式. EditMask是指编辑时的格式 ...
- PHP Redis 缓存数据
// 注:只是在此做下记录,有兴趣的可以参考,不做实际教程文档// 配置文件define('CONFIG', [ 'redis-server' => '127.0.0.1', 'redis-po ...
- 04-JVM内存模型:直接内存
1.1.什么是直接内存(Derect Memory) 在内存模型最开始的章节中,我们画出了JVM的内存模型,里面并不包含直接内存,也就是说这块内存区域并不是JVM运行时数据区的一部分,但它却会被频繁的 ...
- 2018 ACM-ICPC World Finals - Beijing F.Go with the Flow
先枚举所有的列长度 对于每种列长度,然后里面用dp算 #include <algorithm> #include <cmath> #include <cstdio> ...