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. Fortify Audit Workbench 笔记 Dynamic Code Evaluation: Code Injection

    Dynamic Code Evaluation: Code Injection Abstract 在运行时中解析用户控制的指令,会让攻击者有机会执行恶意代码. Explanation 许多现代编程语言 ...

  2. Django学习路35_视图使用方法(复制的代码) + 简单总结

    from django.shortcuts import render,redirect from django.http import HttpResponse,JsonResponse from ...

  3. 比较两个等长的字符串,若相同,则输出Match!,若不同,则输出No Match!

    文章目录 问题 代码 运行结果 问题 比较两个等长的字符串,若相同,则输出Match!,若不同,则输出No Match! 代码 data segment str1 db 'ASDFGHJKL';字符串 ...

  4. try{}catch的隐藏(如何优雅的实现异常块)

    在项目中,我们会遇到异常处理,对于运行时异常,需要我们自己判断处理.对于受检异常,需要我们主动处理. 但是繁琐的try{}caht嵌套在代码里,看着很不舒服,这里我们不讨论性能,就代码来讲,来看看如何 ...

  5. PHP vprintf() 函数

    实例 输出格式化的字符串: <?php高佣联盟 www.cgewang.com$number = 9;$str = "Beijing";vprintf("There ...

  6. 4.19 ABC F path pass i 容斥 树形dp

    LINK:path pass i 原本想了一个点分治 yy了半天 发现重复的部分还是很难减掉 况且统计答案的时候有点ex. (点了别人的提交记录 发现dfs就过了 于是yy了一个容斥 发现可以直接减掉 ...

  7. DeepVO: Towards End-to-End Visual Odometry with Deep Recurrent Convolutional Neural Networks

    1.Introduction DL解决VO问题:End-to-End VO with RCNN 2.Network structure a.CNN based Feature Extraction 论 ...

  8. SpringBoot中使用AOP打印接口日志的方法(转载)

    前言 AOP 是 Aspect Oriented Program (面向切面)的编程的缩写.他是和面向对象编程相对的一个概念.在面向对象的编程中,我们倾向于采用封装.继承.多态等概念,将一个个的功能在 ...

  9. Android 给服务器发送网络请求

    今天听得有点蒙,因为服务器的问题,这边建立服务器的话,学长用的是Idea建立的Spring之类的方法去搞服务器. 然后就是用Android去给这个服务器发送请求,大致效果还是懂的,就是像网站发送请求, ...

  10. 用python写网路爬虫 PDF高清完整版免费下载 Python基础教程免费电子书 python入门书籍免费下载

    <用python写网路爬虫PDF免费下载>PDF书籍下载 内容简介 作为一种便捷地收集网上信息并从中抽取出可用信息的方式,网络爬虫技术变得越来越有用.使用Python这样的简单编程语言,你 ...