虽然有了一些新生派竞品比如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

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

  1. python新建一个文件夹需要重新安装模块吗_解决pycharm每次新建项目都要重新安装一些第三方库的问题...

    目前有三个解决办法,也是亲测有用的: 第一个方法: 因为之前有通过pycharm的project interpreter里的+号添加过一些库,但添加的库只是指定的项目用的,如果想要用,就必须用之前的项 ...

  2. 苹果电脑 不能使用服务器发送邮件,解决Mac上无法使用的邮件问题的技术

    这是您需要的最后一件事. 的问题 邮件在Mac上不起作用 会让你发疯想像一下,您是否无法在需要时接收和发送电子邮件? 你要做什么 对于初学者,不要惊慌. 您可以对此做些事情. 本文将向您展示在Mac上 ...

  3. pycharm配置python第三方库_解决pycharm每次新建项目都要重新安装一些第三方库的问题...

    目前有三个解决办法,也是亲测有用的: 第一个方法: 因为之前有通过pycharm的project interpreter里的+号添加过一些库,但添加的库只是指定的项目用的,如果想要用,就必须用之前的项 ...

  4. mac easyconnect不能双击打开_轻松解决Mac上「应用程序“xxx”不能打开」的问题

    我们很多时候会在互联网上下载 Mac 软件,在安装和打开的时候会遇到各种问题,例如下面出现的这个弹窗「应用程序"xxx"不能打开」的问题. 乍一看是这个应用程序有问题,其实不是.这 ...

  5. 解决Mac上打开txt文件乱码问题

    解决Mac上打开txt文件乱码问题 参考文章: (1)解决Mac上打开txt文件乱码问题 (2)https://www.cnblogs.com/chester-cs/p/11784079.html ( ...

  6. 解决Mac上用spotlight搜索输入几个字母后闪退

    问题描述:使用spotlight进行搜索时,只要输入字母超过一定个数(在我的Mac上是3个),spotlight就闪退了. 谷歌搜索得到大部分解决方案是在系统自带词典的偏好设置里取消外部字典的勾选(如 ...

  7. 解决Mac上微信\QQ无法截图的问题?

    有许多的朋友在更新完Mac系统后发现,之前的微信截图快捷键(ctrl+command+A)只能看到一个空白的桌面,其他的窗口.页面等都被隐藏了,这是什么原因呢?如何解决?一起来和小编看看具体方法吧- ...

  8. 解决Mac上adb: command not found问题

    使用mac进行开发的时候,有时候需要使用adb指令来进行一些操作,但是如果没有配置过Android环境变量,可能会出现adb: command not found的问题,查了一些资料,这里记录一下ma ...

  9. 解决idea中每次创建项目都要重复配置maven,全网几步配置

    你是不是idea每次创建项目都要重新配置maven呢?为啥呢老憋屈了. 因为你之前的每一次的maven配置都是在项目中去配置的 ,所以只会在本项目中生效.也就是说在项目中配置的是局部配置. 我们需要一 ...

最新文章

  1. scrapy中的request对象
  2. mysql自定义变量
  3. 控制台一直报错, [WDS] Disconnected!
  4. 【机器学习】分类算法sklearn-朴素贝叶斯算法
  5. java郝斌_郝斌Java自学教程全集打包
  6. wordpress WBOLT 百度推送管理 3.4.6 Pro
  7. 怎么在linux终端上sed,Linux中如何使用sed命令
  8. python命名实体识别工具_Day14:使用斯坦福 NER 软件包实现你自己的命名实体识别器(Named Entity Recognition,NER)...
  9. 联通HG8347R WO-36光猫 当前用户不允许登录解决办法
  10. 锤子android 7,锤子新机坚果Pro配置放出:骁龙626处理器、Android 7.1.1系统
  11. VMware Workstation 15 Player 社区版安装教程
  12. 笃志前行 锐意进取 | 中创算力在区块链比赛中展现新风采
  13. Autodask_3DMAX安装Failed Installation aborted, Result=1619解决办法
  14. 网络分流器|网络分流器|网络分流采集器的应用领域
  15. 基于Linux系统的边界网关协议的设计与实现
  16. 保险费率软件测试题目,软件测试保险等价类法测试用例
  17. 抖音服务器维护播放为零,抖音作品为什么播放为零 账号是不是被官方限流屏蔽了...
  18. 中科院oracle,《Oracle 10G 系统教程 中科院培训老师讲授》
  19. 二维码及验证码的生成
  20. 【转录调控网络】典型的基因转录调控网络推导方法——微分方程方法

热门文章

  1. jar包中的类如何读取包内和包外的配置文件
  2. LNMT/LAMT实现动静分离、负载均衡和会话保持
  3. QT之 Hello World
  4. 分布式缓存技术memcached学习系列(五)—— memcached java客户端的使用
  5. 居中的文字在小屏幕下后面的换行
  6. linux之netstat与lsof
  7. IBM Holosofx 进行业务流程管理
  8. 关于c语言编写 单项链表 的创建、插入、修改、删除、显示、退出 的程序案例
  9. flink中akka的使用 以jobClient提交任务为例子
  10. golang 返回值问题