本文介绍: 在安装的时候,n会先将指定版本node存储下来,然后将其复制我们熟知的路径/usr/local/bin,非常简单明了。在安装的时候,nvm 将不同的 node 版本存储到 ~/.nvm// 下,然后修改 $PATH,将指定版本node路径加入,这样我们调用node 命令即是使用指定版本node。在 node版本管理工具中,nvm 自然声名远扬,然而我们也不能忘了来自 TJ 的 n。如果你是一个轻量级用户,不需要担心兼容性的问题,更关心 node 安装使用上的体验,那么选择 n。

n和nvm区别

node 的版本管理工具中,nvm 自然声名远扬,然而我们也不能忘了来自 TJ 的 n。这两种,是目前最主流的方案。

关于这两个工具如何安装使用这里不再多说,请见它们各自的主页

creationix/nvm

TJ

接下来我们着重关注一下 nvm 和 n 的运作机制和特性

1、n

n 依赖于 node

n 是一个需要全局安装npm package

npm install -g n

这意味着,我们在使用 n 管理 node 版本前,首先需要一个 node 环境。我们或者用 Homebrew安装一个 node,或者从官网下载 pkg 来安装,总之我们得先自己装一个 node——n本身是没法给你装的。

然后我们可以使用 n来安装不同版本的node。在安装的时候,n会先将指定版本的node存储下来,然后将其复制到我们熟知的路径/usr/local/bin,非常简单明了。当然由于n会操作到非用户目录,所以需要sudo执行命令
所以这样看来,n 在其实现上是一个非常易理解的方案。
but ,n会出现全局模块无法更新问题
⚠️ 使用npm不要使用n

2、nvm

我们再来看 nvm。不同于 n,nvm 不是一个 npm package,而是一个独立软件包。这意味着我们需要单独使用它的安装逻辑

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash

或者使用 Homebrew 来安装。(mac安装Homebrew

brew install nvm

出现下图代表安装成功
在这里插入图片描述
安装成功之后,还不能直接使用nvm命令需要进行以下配置

  1. 打开 .bash_profile 这个文件
open ~/.bash_profile
  1. 把下面的内容复制到 .bash_profile 这个文件后面并保存
 export NVM_DIR="$HOME/.nvm"
  [ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
  [ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion
  1. 执行
source .bash_profile
  1. 在 ~/.bash_profile配置环境变量, 可是每次重启终端或者打开新的命令窗口后,配置环境变量就会失效.需要重新执行 : $source ~/.bash_profile,才能重新生效
    原因是:自己安装了zshzsh加载的是 ~/.zshrc文件,而 ‘.zshrc文件中并没有定义任务环境变量
    解决办法:在~/.zshrc文件最后,增加一行
source ~/.bash_profile

在这之后,mac 每次启动终端都会提示 zsh compinit: insecure directories, run compaudit for list. Ignore insecure
然后我们可以使用 nvm 来安装不同版本的 node。

在安装的时候,nvm 将不同的 node 版本存储到 ~/.nvm// 下,然后修改 $PATH,将指定版本的node路径加入,这样我们调用的 node 命令即是使用指定版本的 node。

nvm 显然比 n 要复杂一些,但是另一方面,由于它是一个独立软件包,因此它和 node 之间的关系看上去更合乎逻辑:nvm 不依赖 node 环境,是 node 依赖 nvm;而不像 n 那样产生类似循环依赖问题

如何选择

这样看下来,nvm 和 n 的差异还是比较大的,具体体现在:

nvm 的全局模块存在于各自版本的沙箱中,切换版本后需要重新安装,不同版本间也不存在任何冲突

关于 node 路径。n 是万年不变的 /usr/local/bin; nvm 需要手动指定路径。
使用 nvm 管理不同版本的 node 与 npm

怎么选:

  1. 如果你使用 Windows,那没得选了,使用 n,或者换一台 Mac

  2. 如果你会频繁切换 node 版本(比如本地经常测试最新版特性,同时又要兼顾代码在生产环境的兼容性),那么从全局模块兼容性的角度考虑,只能使用 nvm。

  3. 如果你是一个轻量级的用户,不需要担心兼容性的问题,更关心 node 安装和使用上的体验,那么选择 n。

  4. 你如果要问,博主最终选用了谁?我会说,我选择了更流行的那一个。

npm常用命令

1. nvm list查找电脑上所有的node版本
    - nvm list 查看已经安装的版本
    - nvm list installed 查看已经安装的版本
    - nvm list available 查看网络可以安装的版本
2. nvm install <version> 安装指定版本node
3. nvm install stable 安装最新稳定版本
4. nvm use <version> 切换使用指定的版本node
5. nvm ls 列出所有版本
6. nvm current显示当前版本
7. nvm alias &lt;name&gt; <version&gt; ## 给不同的版本号添加别名
8. nvm unalias <name&gt; ## 删除定义别名
9. nvm reinstall-packages <version&gt; ## 在当前版本node环境下,重新全局安装指定版本号npm10. 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 <version&gt; 卸载制定的版本
15. nvm use [version] [arch] 切换制定的node版本和位数
16. nvm root [path] 设置查看root路径
17. nvm version 查看当前的版本

原文地址:https://blog.csdn.net/meimeib/article/details/130007490

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_19005.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注