NPM全局安装软件包时解决EACCES权限错误
NPM全局安装软件包时解决EACCES权限错误
Resolving EACCES permissions errors when installing packages globally
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/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).
如果在尝试全局安装软件包时看到EACCES错误,则可以:
- 使用节点版本管理器重新安装npm(推荐)
 - 手动更改npm的默认目录
 
使用Node.js包管理器,重新安装NPM
这是避免权限问题的最佳方法。 要使用节点版本管理器重新安装npm,请按照“下载并安装Node.js和npm”中的步骤进行操作。 在安装节点版本管理器之前,不需要删除当前版本的npm或Node.js。
要下载最新版本的npm,请在命令行上运行以下命令:
[sudo] npm install npm -g
手动更改npm的默认目录
注意:本部分不适用于Microsoft Windows。
为了最大程度地减少权限错误的可能性,您可以将npm配置为使用其他目录。 在此示例中,您将在主目录中创建并使用隐藏目录。
1、 备份电脑。
2、在命令行的主目录中,为全局安装创建目录:
 mkdir ~/.npm-global
3、 配置npm以使用新的目录路径:
npm config set prefix '~/.npm-global'
4、在您喜欢的文本编辑器中,打开或创建〜/ .profile文件并添加以下行:
export PATH=~/.npm-global/bin:$PATH
5、在命令行上,更新系统变量:
source ~/.profile
6、要测试新配置,请在不使用sudo的情况下全局安装软件包:
npm install -g jshint
您可以使用相应的ENV变量来代替第2-4步(例如,如果您不想修改〜/ .profile):
NPM_CONFIG_PREFIX=~/.npm-global
npx:运行全局命令的替代方法
如果您使用的是npm 5.2或更高版本,则可能要考虑将npx作为运行全局命令的替代方法,尤其是在您仅偶尔需要命令的情况下。
NPM全局安装软件包时解决EACCES权限错误的更多相关文章
- npm全局安装和本地安装和本地开发安装(npm install --g/--save/--save-dev)
		
详细说明参考:http://www.cnblogs.com/PeunZhang/p/5629329.html 我个人理解: 1.全局安装(npm install -g)是为了用命令行,比如在windo ...
 - 查看npm全局安装位置
		
查看npm全局安装位置:npm config get prefix 设置位置:npm config set prefix 填写位置
 - 记录Linux下安装elasticSearch时遇到的一些错误
		
记录Linux下安装elasticSearch时遇到的一些错误 http://blog.sina.com.cn/s/blog_c90ce4e001032f7w.html (2016-11-02 22: ...
 - 【问题】SUSE已经安装了libsodium,安装zeromq时出现下面的错误?
		
1.[问题]SUSE已经安装了libsodium,安装zeromq时出现下面的错误? checking for libsodium... no configure: error: Package re ...
 - npm 在安装的时候提示 没有权限操作的解决办法 Error: EACCES: permission denied
		
十分感谢https://blog.csdn.net/ldqsxsl/article/details/75059607的帮助! 错误原因:权限错误,需要root用户. 解决办法:就是把用户目录下的 .n ...
 - 【hexo+github搭建myblog】bash: npm: command not found 问题,疑似解决!关键词:NPM全局安装路径
		
情况:打算用hexo+github搭建个人博客 1. hexo搭建,参考博文如下,非常感谢: Hexo+Github博客搭建完全教程 hexo从零开始到搭建完整 问题: 在最基本的安装步骤 (参考链接 ...
 - npm全局安装和局部文件安装区别
		
全局安装往往是安装一个工具,他不是安装在一个文件夹下,而是安装在某个全局环境下,如目前我的安装路径是: C:\Users\cvter\AppData\Roaming\npm 在这里,我们可以看到所有全 ...
 - npm无法安装node-sass的解决方法
		
使用npm install 命令安装node-sass时,经常出现安装失败的情况.原因在于npm服务器在美国,还有就是某强大的防火墙作用.导致模块无法下载. npm install node-sass ...
 - npm 全局安装和局部安装的区别
		
上图是从网上找的webpack 安装的步骤,我们看到除了要全局安装之外,还需要本地安装,那么这两者有什么区别呢? 本文以Windows平台上做测试,以webpack为示例做教程 什么是全局安装? 安装 ...
 
随机推荐
- Java集合框架——List接口
			
第三阶段 JAVA常见对象的学习 集合框架--List接口 按照集合框架的继承体系,我们先从Collection中的List接口开始学习 (一) 概述及功能(ArrayList演示) (1) 概述 L ...
 - PB做的托盘程序(最小化后在左下角显示图标)
			
见‘文件’资源
 - mysql批量修改数据库表引擎
			
数据库表之前的引擎是MyISAM,影响事务操作,要改成Innodb引擎 查询表引擎 SELECT CONCAT(table_name,' ', engine) FROM information_sch ...
 - xshell和xftp过期解决办法
			
去官网 xshell:https://www.netsarang.com/download/down_form.html?code=522 xftp:https://www.netsarang.com ...
 - Java多线程(十一):线程组
			
线程组 线程组可以批量管理线程和线程组对象. 一级关联 例子如下,建立一级关联. public class MyThread43 implements Runnable{ public void ru ...
 - [NOIP10.4模拟赛]2.y题解--折半搜索+状压计数
			
题目链接: 咕 闲扯: 这题暴力分似乎挺多,但是一些奇奇怪怪的细节没注意RE了,还是太菜了 分析: 首先我们考虑最naiive的状压DP ,\(f[u][v][state]\)表示u开头,v结尾是否存 ...
 - luogu2568GCD题解--欧拉函数
			
题目链接 https://www.luogu.org/problemnew/show/P2568 分析 题目即求\(\sum_{i=1}^N \sum_{j=1}^N [gcd(i,j)\) \(is ...
 - linux  grep/awk/cut/egrep/echo/经验
			
1. 例子 http://www.test.com/atk/pki/test-1.1.tar.gz 过滤出test-1.1.tar.gz t = http://www.test.com/atk/pki ...
 - setTimeout与setInterval的使用
			
setTimeout:间隔一段时间后执行,只执行一次. function show(){ console.log(1); } setTimeout(show(),200);//直接执行无延时 setT ...
 - printf颜色
			
格式 printf("\033[?m%s\033[0m", str); 多个属性以:分隔 属性: \033[0m:关闭所有属性 \033[1m:设置高亮度 \033[4m:下划线 ...