关于mac环境下的node版本管理工具n和nvm

04-13 758阅读

1.区别:node版本管理之n和nvm_n node-CSDN博客

  1)n 是一个需要全局安装的 npm package,n会出现全局模块无法更新的问题,⚠️ 使用npm不要使用n

关于mac环境下的node版本管理工具n和nvm
(图片来源网络,侵删)

  2)nvm 一个独立软件包

  3)关于 node 路径。n 是万年不变的 /usr/local/bin; nvm 需要手动指定路径。

2.n的使用

  1)常见命令
 全局安装:npm install n -g
 安装node最新版本:sudo n latest
 安装node最新stable版本:sudo n lts
 安装特定版本:sudo n 版本
 切换版本:n
 删除版本:sudo n rm 
 删除当前使用版本外的所有版本:n prune
 卸载n:n uninstall
 列出可供下载的匹配远程版本:n ls-remote lts
     n ls-remote latest
     n lsr 10
     n --all lsr
 列出缓存中下载的版本:n ls
 显示诊断信息以帮助解决问题:n doctor
 2)为避免在 n 和 npm 全局安装时需要 sudo 

(1)第一种:获取系统目录的所有权

# make cache folder (if missing) and take ownership
sudo mkdir -p /usr/local/n
sudo chown -R $(whoami) /usr/local/n
# make sure the required folders exist (safe to execute even if they already exist)
sudo mkdir -p /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
# take ownership of Node.js install destination folders
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share

mkdir:代表创建文件

-p:如果某些文件夹不存在,加上此选项后,系统将自动建立好那些不存在的目录,即一次性创建多个目录

(2)第二种:使用 N_PREFIX 安装到其他目录,默认情况下, n 命令下载并安装到 /usr/local ,但您可以通过定义 N_PREFIX 覆盖此位置。要将位置更改为 $HOME/.n ,请在shell初始化文件中添加如下行:

export N_PREFIX=$HOME/.n
export PATH=$N_PREFIX/bin:$PATH
3)安装:

  第一种:npm install n -g

  第二种:如npm 还不可用,可以下载并直接运行 n 。安装Node.js的 lts 版本:

curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n | bash -s lts
# If you want n installed, you can use npm now.
npm install -g n

 curl -fsSL 是常用的命令行工具,用来请求 Web 服务器。-fsSL 是参数,各个参数含义见下,当然还有很多其他参数,百度自行查阅。

 -s参数将不输出错误和进度信息。

 -S参数指定只输出错误信息,通常与-s一起使用。

  -f 当服务器返回错误状态码时,不显示内容,直接退出。这可以用来过滤掉那些因服务器问题(如404 Not Found)而导致的请求失败。

  -L:如果请求的资源被重定向,跟随重定向并请求最终资源。这意味着如果服务器返回了一个重定向响应,curl会跟踪这个重定向并获取最终的资源。

  第三种:当然还有其他安装方式,具体见官方文档

4)node版本号简写:数字版本号可以是完整的,也可以是不完整的,并带有可选的前导 v 。

  • 8: 8.x.y versions  8 :8.x.y版本
  • v6.1: 6.1.x versions  v6.1 :6.1.x版本
  • lts :最新的长期支持官方版本
  • latest , current :最新官方发布

    3.nvm的使用

      1)github地址:https://github.com/nvm-sh/nvm?tab=readme-ov-file#about

      2)安装:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

    (1)当我们执行curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash时报错Failed to connect to raw.githubusercontent.com port 443: Connection refused

     

    原因一:mac10.15安全等级提升,不允许远程执行脚本,解决方法第一种是用本地进行执行,第二种是修改系统设置。第一种:用浏览器打开https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh后网页会显示一堆代码,把代码拷贝进本地新建的sh为后缀的文件,终端执行该文件。第二种:“系统设置”,“通用” ,“共享”。打开“远程应用程序脚本”,然后点按右侧的“信息”按钮 。点按“允许访问”弹出式菜单,给用户设置权限。

    原因二:网络不通,先ping 地址,看是否报错,如果报错,先寻找该地址的ip(可在IP Tracer & Tracker - IP Address Lookup Made Easy搜索到ip或利用其他网站),然后.etc/hosts文件夹里添加末尾添加一行:ip地址 域名地址(就是你前面ping的地址),保存后再进行ping,成功后重新执行。

    (2)下载完nvm后无法nvm -v 找不到

    原因一:没有配置环境变量:

    第一步:找到.bash_profile文件夹

    第二步:末尾添加以下代码

    第三步:执行source .bash_profile

    export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

    原因二:macOS Catalina 系统,默认的 shell 是 zsh,解决办法,在~/.zshrc文件夹中添加source ~/.bash_profile

    (3)你不是文件“.bash_profile”的所有者,因此没有权限写到该文件。

    对该文件拷贝一份,然后对拷贝的文件进行更改,更改完成后删除原始文件,并且把拷贝的文件名字换成原始名称

    (4)当我们对nvm进行变量添加时会需要操作这些文件,但是这些文件在哪里呢,open 文件路径,在左上角的文件中进行打开即可,由于.开头的都是隐藏文件夹,因此我们需要到对应文件夹内对隐藏文件夹进行显示才能打开看见文件夹(快捷键commond+shift+.),当然我们也需要知道~代表的是用户文件夹,~/.bash_profile 、 ~/.zshrc 、 ~/.profile 或 ~/.bashrc

    (5)当我们终于nvm -v在终端上进行展示版本信息的时候,我们输入nvm ls时,展示

    ➜  ~ nvm ls
      
      ->       system
      iojs -> N/A (default)
      node -> stable (-> N/A) (default)
      unstable -> N/A (default)

    这只是代表着我们的nvm没有安装node,属于正常现象,如果你环境里安装过node我们只需要执行

    nvm install 'lts/*' --reinstall-packages-from=current

     这条语句同时会把之前安装过的版本移植到nvm

    如果没有安装过node 执行nvm node,会对最新的node进行安装

    这时候我们在进行nvm ls

    jinhuafeng@jinhuafengdeMBP ~ % nvm ls
    ->     v20.11.0
    default -> lts/* (-> v20.11.0)
    iojs -> N/A (default)
    unstable -> N/A (default)
    node -> stable (-> v20.11.0) (default)
    stable -> 20.11 (-> v20.11.0) (default)
    lts/* -> lts/iron (-> v20.11.0)
    lts/argon -> v4.9.1 (-> N/A)
    lts/boron -> v6.17.1 (-> N/A)
    lts/carbon -> v8.17.0 (-> N/A)
    lts/dubnium -> v10.24.1 (-> N/A)
    lts/erbium -> v12.22.12 (-> N/A)
    lts/fermium -> v14.21.3 (-> N/A)
    lts/gallium -> v16.20.2 (-> N/A)
    lts/hydrogen -> v18.19.0 (-> N/A)
    lts/iron -> v20.11.0

    (6)修改hosts或 ~/.bash_profile 、 ~/.zshrc 不起作用,可能是变成了text文件,所以先拷贝一份出来然后进行修改,再覆盖。

    3)常见命令

    1. nvm list 是查找本电脑上所有的node版本
        - nvm list 查看已经安装的版本
        - nvm list installed 查看已经安装的版本
        - nvm list available 查看网络可以安装的版本
    2. nvm install  安装指定版本node
    3. nvm install stable 安装最新稳定版本
    4. nvm use  切换使用指定的版本node
    5. nvm ls 列出所有版本
    6. nvm current显示当前版本
    7. nvm alias   ## 给不同的版本号添加别名
    8. nvm unalias  ## 删除已定义的别名
    9. nvm reinstall-packages  ## 在当前版本node环境下,重新全局安装指定版本号的npm包
    10. nvm on 打开nodejs控制
    11. nvm off 关闭nodejs控制
    12. nvm proxy 查看设置与代理
    13. nvm node_mirror [url] 设置或者查看setting.txt中的node_mirror,如果不设置的默认是 https://nodejs.org/dist/
      nvm npm_mirror [url] 设置或者查看setting.txt中的npm_mirror,如果不设置的话默认的是: https://github.com/npm/npm/archive/.
    14. nvm uninstall  卸载制定的版本
    15. nvm use [version] [arch] 切换制定的node版本和位数
    16. nvm root [path] 设置和查看root路径
    17. nvm version 查看当前的版本
    ————————————————
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                            
    原文链接:https://blog.csdn.net/meimeib/article/details/130007490
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]