zoukankan      html  css  js  c++  java
  • 解决mac上每次升级nodejs都要重新安装扩展包的问题


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

  • 相关阅读:
    第一周作业
    模拟赛3 题解
    模拟赛2 题解
    [HNOI2008]GT考试 题解
    NOI Online 提高组 题解
    模拟赛1 题解
    知识点拾遗
    [NOIp2012]疫情控制 题解
    [CEOI2002]Bugs Integrated, Inc. 题解
    [NOIp2017]宝藏 题解
  • 原文地址:https://www.cnblogs.com/andrewwang/p/10347679.html
Copyright © 2011-2022 走看看