npm i失败解决

背景:

有个好久没用的项目要改点东西,从git上下了代码之后执行npm install,竟然报错:
Unhandled rejection Error: EACCES: permission denied, rename '
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190725184540310.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d1aXNoaWZveGlu,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190725184717354.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d1aXNoaWZveGlu,size_16,color_FFFFFF,t_70)

分析:

查看报错可以发现是没有当前npm用来存储全局包命令目录的写权限

解决方法1:修改npm默认目录的权限

  1. 找到npm目录路径npm config get prefix
    ⚠️注意:如果路径显示的是 /user,直接第二部
  2. 修改npm目录的拥有者为当前用户
    执行sudo chown -R $(whoami) ~/.npmsudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}(同时修改了npm下面子目录和其他工具命令(lib/node_modules,bin,and share))
  3. 重新执行npm install

解决方法2: 修改npm默认目录的位置

当不能简单的修改npm默认目录的拥有者时,可以修改npm目录位置。
  1. 创建一个目录用于全局包安装mkdir ~/.npm-global

  2. 配置npm使其使用新的目录npm config set prefix '~/.npm-global

  3. 打开或者新建~/.profile文件,并添加目录路径 export PATH=~/.npm-global/bin:$PATH

  4. 返回命令行界面,更新系统变量source ~/.profile
    测试:不使用sudo下载一个全局包

    npm install -g jshintjia’r

你也可以通过修改ENV环境变量来代替24步骤(假如你不想修改/.profile)

NPM_CONFIG_PREFIX=~/.npm-global npm install -g jshint
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值