Node.js 越来越热,应用的场景也越来越多。

在开发中,我们可能同时在进行多个 node 项目,而这些不同的项目所使用的 node 版本又是不一样的,或者是要用更新的 node 版本进行试验和学习。

这种情况下,对于维护多个版本的 node 将会是一件非常麻烦的事情,而 nvm 就是为解决这个问题而产生的,他可以方便的在同一台设备上进行多个 node 版本之间切换。

了解更多:https://github.com/creationix/nvm

安装 nvm

如果你已经单独安装过 node ,建议卸载 node 并清除 npm 中的全局组件后,再继续 nvm 的安装。

Windows 用户可以直接下载 >>引导程序<< 进行安装。

安装后可以在命令行进行验证:

$ nvm version
> 1.1.7 # 如果提示不是内部命令,需要手动把 nvm 的安装路径添加到 环境变量 。

其他操作系统用户,可以看这里:https://github.com/creationix/nvm/blob/master/README.md

切换源

老生常谈。因为国内网速原因,你可以将 nvm 的默认仓库替换为淘宝的镜像地址。

# nvm node_mirror [url]
$ nvm node_mirror https://npm.taobao.org/mirrors/node

查看 Node

# 查看本地已安装
$ nvm list && nvm ls # 查看远程可安装
$ nvm list available && nvm ls available

安装 Node

# 安装最新版
$ nvm install latest # 安装指定版本
# nvm install version
$ nvm install v10.15.0

切换 Node

# nvm use version
$ nvm use 10.15.0

卸载 Node

# nvm uninstall version
$ nvm uninstall v10.15.0

沙箱式存储全局组件

非 nvm 管理的情况下,全局组件是安装到 /usr/local/lib/node_modules 下,然后通过软连接的方式把包中 bin 目录下的可执行文件链接到 /usr/local/bin 。不管用什么版本都装到这些目录下,多版本就没法玩了。

在 nvm 管理下,以沙箱的方式,全局组件会装到 .nvm 目录的当前版本 node 下,也就是装在 nvm 这个沙箱里,跟在指定版本的 node 下,当前有什么版本的 node ,就有对应的全局组件。这是 nvm 强大的地方,在多运行环境的管理和切换极为好用。

简单来说,在 nvm 下,我们可以在不同的 node 版本下,安装不同版本的全局组件。以便灵活的适应我们的开发环境需求。

使用.nvmrc文件运行

当然,nvm 的应用不仅仅局限于我们的开发环境,在线上的服务器中,nvm 也可以得到应用。

为了让不同的应用系统使用各自所需的 node 版本运行,我们只需在各应用系统内的根目录里生成一个 .nvmrc 文件,在其内写一个版本号,利用 nvm run app.js 的方式运行系统,即可完成要求。不过可惜的是,目前这项功能只支持linux,OS系统。

参考

  1. nvm介绍及使用 -- 长城_changcheng:https://www.jianshu.com/p/d0e0935b150a

nvm -- node 多版本管理器的更多相关文章

  1. 使用Node.js版本管理器

    使用Node.js版本管理器 完全卸载Node.js 清除Package缓存:npm cache clean --force 卸载Node.js:wmic product where caption= ...

  2. Mac OSX 安装nvm(node.js版本管理器)

    我的系统 1.打开github官网https://github.com/,输入nvm搜索,选择creationix/nvm,打开 2.找到Install script,复制 curl -o- http ...

  3. 使用nvm进行node多版本管理

    nvm与Python的virtualenv和Ruby的rvm类似.NVM (Node Version Manager,Node多版本管理器)是一个通用的叫法,它目前有许多不同的实现.通常我们说的 nv ...

  4. Node版本管理器NVM常用命令

    NVM是什么?nvm (Node Version Manager) 是Nodejs版本管理器,可对不同的node版本快速进行切换. 为什么要用NVM?基于node的工具和项目越来越多,但是每个项目使用 ...

  5. nodejs版本管理工具NVM(Node Version Mene)

    最近打算用心学习nodejs,所以在学习中了解到NVM-nodejs的版本管理工具,下面我就记录下我学习并且安装的详细过程,请大神们放过~~第一步.你要先把你本机上安装的nodejs以及npm相关的东 ...

  6. Windows上安装nodejs版本管理器nvm

    nvm最新的下载地址 Node版本管理器--nvm,可以运行在多种操作系统上.nvm for windows 是使用go语言编写的软件. 我电脑使用的是Windows操作系统,所以我要记录下在此操作系 ...

  7. 在windows中使用 nvm 实现node多版本管理

    所谓 NVM 就是 Node Version Manager 的缩写,即 node的版本管理工具,我们可以在电脑中安装多个不同版本的node,并借由 NVM 来实现自由切换,详情可点击查看 NVM 官 ...

  8. Windows上安装nvm--nodejs版本管理器

    nvm最新的下载地址 Node版本管理器--nvm,可以运行在多种操作系统上.nvm for windows 是使用go语言编写的软件. 我电脑使用的是Windows操作系统,所以我要记录下在此操作系 ...

  9. node包管理器

    NPM小结   nodejs的出现,可以算是前端里程碑式的一个事件,它让前端攻城狮们摆脱了浏览器的束缚,踏上了一个更加宽广的舞台.前端的可能性,从此更加具有想象空间. 随着一系列基于nodes的应用/ ...

随机推荐

  1. 使用 expect 重启失败的 git pull/push 操作

    问题的提出 最近使用 github 上传.下载项目代码时,经常会卡很久,有时候在命令行打了 git push 然后就去上厕所了,结果等我回来的时候,发现 push 早已经失败了,还得重新提交一下.如果 ...

  2. mapstruct 实体转换及List转换,@Mapper注解转换

    本文参考 https://blog.csdn.net/u012373815/article/details/88367456 主要是为了自己使用方便查询. 这些都是我平时用到了,大家有什么好方法或者有 ...

  3. PHP tanh() 函数

    实例 返回不同数的双曲正切: <?php高佣联盟 www.cgewang.comecho(tanh(M_PI_4) . "<br>");echo(tanh(0.5 ...

  4. CF 633 div1 1338 B. Edge Weight Assignment 构造

    LINK:Edge Weight Assignment 这场当时没打 看到这个B题吓到我了 还好当时没打. 想了20min才知道怎么做 而且还不能证明. 首先考虑求最小. 可以发现 如果任意两个叶子节 ...

  5. intel:spectre&Meltdown侧信道攻击(四)—— cache mapping

    前面简单介绍了row hammer攻击的原理和方法,为了更好理解这种底层硬件类攻击,今天介绍一下cpu的cache mapping: 众所周知,cpu从内存读数据,最开始用的是虚拟地址,需要通过分页机 ...

  6. LVS-NAT:搭建HTTP及HTTPS负载均衡集群

    目录 LVS-NAT:搭建HTTP及HTTPS负载均衡集群 环境说明: 搭建NAT模式的HTTP负载集群 1. 配置好IP地址信息 2. DR上开启IP转发 3.DR上配置lvs-nat的转发机制 4 ...

  7. 使用hibernate validate做参数校验

    1.为什么使用hibernate validate ​ 在开发http接口的时候,参数校验是必须有的一个环节,当参数校验较少的时候,一般是直接按照校验条件做校验,校验不通过,返回错误信息.比如以下校验 ...

  8. UML科普文,一篇文章掌握14种UML图

    前言 上一篇文章写了一篇建造者模式,其中有几个UML类图,有的读者反馈看不懂了,我们今天就来解决一哈. 什么是UML? UML是Unified Model Language的缩写,中文是统一建模语言, ...

  9. MySQL索引结构原理分析

    我们在学习MySQL的时候经常会听到索引这个词,大概也知道这是什么,但是深究下去又说不出什么道道来.下面将会比较全面的介绍一下关于索引! 1 索引是什么? 这里用百度百科的一句话来说,在关系数据库中, ...

  10. JS 执行机制笔记

        js同步和异步同步 前一个任务结束以后再执行下面一个任务,程序的执行顺序与任务的排列顺序是一致的 同步任务都在主线程上执行,形成一个执行线 异步 前一个任务没结束之前程序还可以执行别的任务 j ...