首页 > Web开发 > 详细

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

时间:2019-02-02 11:03:36      阅读:161      评论:0      收藏:0      [点我收藏+]

技术分享图片
虽然有了一些新生派竞品比如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版本的升级,就不会影响扩展包了。

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

原文:https://www.cnblogs.com/andrewwang/p/10347679.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!