解决mac上每次升级nodejs都要重新安装扩展包的问题

timg?image&quality=80&size=b9999_10000&sec=1549081744359&di=537a14e817fd9ceb224a134ddb0664e3&imgtype=0&src=http%3A%2F%2Fwww.bccn.net%2Fmedia%2Fnews%2F2017%2F01%2F16%2F1484556320_99662422.jpg
虽然有了一些新生派竞品比如yarn,但使用或者习惯了npm的开发者仍然大有人在。

以前用起来没注意到这个现象,最近一段时间发现,每次随着使用brew upgrade自动升级了nodejs版本,原来安装的nodejs扩展包就不起作用了,还需要重新安装一遍。再加上一些扩展包存储网站被墙的问题,这个过程真是令人痛不欲生。
今天比较闲了研究了一下,发现原来的扩展包都是通过npm安装到/usr/local/lib/node_modules目录。这种设置每次升级并不影响不同版本nodejs同扩展包的配合。不过因为命令行的nodejs工具没有导出到执行路径,所以无法直接运行(比如@angular/cli)。所以在当时,我曾经手工在/etc/paths中增加了搜索执行路径:/usr/local/lib/node_modules/bin。

当前的nodejs版本,使用npm安装的扩展包,已经默认安装到了nodejs安装目录之下。使用brew安装的话,这个路径通常是:/usr/local/Cellar/node/xx.xx.xx版本号/。因为不同版本位于不同目录,老版本习惯上又被清理掉了的话,那nodejs扩展包当然也要重新安装了。还有一个同时带来的烦人问题,因为这个路径经常变化,执行文件搜索路径也要每次修改。

知道了原因,解决起来也简单:

#删除掉早期的扩展包路径,这个文件夹实际上已经不使用了
#没有安装过早期版本的话,没有这个路径,当然不用删除
sudo rm -rf /usr/local/lib/node_modules

#自己建立一个扩展包安装路径
sudo mkdir /usr/local/npm
#设置权限
sudo chown $USER:admin /usr/local/npm

#让npm将扩展包安装到指定路径
echo prefix=/usr/local/npm >> ~/.npmrc

#设置执行搜索路径
sudo echo /usr/local/npm/bin >> /etc/paths

这样以后nodejs版本的升级,就不会影响扩展包了。

转载于:https://www.cnblogs.com/andrewwang/p/10347679.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值