视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mac中利用NVM管理不同node版本的方法详解
2020-11-27 22:26:06 责编:小采
文档


前言

大家在开始本文的正文之前,建议大家先看看这篇文章://www.gxlcms.com/article/73424.htm,这篇文章给大家详细介绍了关于node.js 下使用 nvm 或者 n 来进行版本控制及nvm 安装node.js 版本后,重启终端 node , npm 环境变量失效的相关内容,好了,下面开始本文的正文:

Mac 下通过 brew install nvm 所安装的 nvm ,由于安装路径不同,无法正确启用。建议使用 brew uninstall nvm 卸载掉之后,通过本文的方案重新安装一次。

卸载已安装到全局的 node/npm

如果之前是在官网下载的 node 安装包,运行后会自动安装在全局目录,其中

node 命令在 /usr/local/bin/node ,npm 命令在全局 node_modules 目录中,具体路径为 /usr/local/lib/node_modules/npm

安装 nvm 之后最好先删除下已安装的 node 和全局 node 模块:

npm ls -g --depth=0 #查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装

sudo rm -rf /usr/local/lib/node_modules #删除全局 node_modules 目录
sudo rm /usr/local/bin/node #删除 node
cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm #删除全局 node 模块注册的软链

通过nvm来管理

场景:同组的同事使用node版本是5.7.0,而本机安装了node 7.2.0,如何兼容?

使用nvm管理。

  • 使用Homebrew安裝nvm
  • 使用nvm安裝Node.js
  • 使用nvm無痛切換Node.js版本
  • 安装nvm

    brew install nvm

    使nvm生效

    source $(brew --prefix nvm)/nvm.sh

    或者:

    echo "source $(brew --prefix nvm)/nvm.sh" >> .bash_profile
    . ~/.bash_profile

    使用nvm安裝Node.js

    nvm ls-remote

    查看可用版本:

    v0.10.20
    v0.10.21

    安装:

    nvm install <version>

    比如:

    nvm install v5.7.0

    还有

    nvm install v7.2.0

    使用nvm無痛切換Node.js版本

    nvm會把各個版本的node安裝在/usr/local/opt/nvm底下。可以看看該目錄底下放了哪些東西:

     $ ls /usr/local/opt/nvm
    INSTALL_RECEIPT.json LICENSE.md alias bin nvm.sh v5.7.0 v7.2.0

    我們可以發現透過nvm安裝這兩個版本,事實上會在nvm目錄下另外建立了v5.7.0以及v7.2.0兩個目錄來分別存放node的binary檔。又nvm會在你的$PATH最前面安插指定版本的目錄,透過這個方式你在使用node指令時就會用指定的版本來運作了。

    實際確認PATH的值看看:

     $ echo $PATH
    /usr/local/opt/nvm/v5.7.0/bin: ...

    查看当前可用版本

    nvm ls

    切换版本:

    nvm use <version>

    比如

    nvm use --delete-prefix v5.7.0

    也可以偷懶一點,不用打完整的版號:

    $ nvm use --delete-prefix 5.7
    Now using node v5.7.0

    切換成別的版本:

    $ nvm use --delete-prefix 7
    Now using node v7.2.0

    不過問題來了,如果你另外開一個shell視窗,並輸入nvm,會發現current version是空的:

     $ nvm ls
    
     v0.10.24
     v0.11.10
    current:

    這是因為利用nvm use指令只會在當前的shell生效,當你開了新的shell就會發現$PATH的值已經不包含剛才設定的node目錄了。

    要解決這個問題就是利用

    $ nvm alias default <version>

    來設定一個預設的node版本:

     $ nvm alias default 5.7.0
    default -> 5.7 (-> v5.7.0)

    此時再打開另一個shell視窗,就可以直接使用你所設定的node版本了。

    总结

    下载本文
    显示全文
    专题