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

最新文章

  1. 团队开发——冲刺2.g
  2. Android 常见的广播 action常量
  3. jQuery.form.js使用
  4. HDU 1394 (逆序数) Minimum Inversion Number
  5. java复制File文件操作
  6. 机器学习 —— 概率图模型(Homework: Exact Inference)
  7. Hibernate管理Session和批量操作
  8. 数据返回[数据库基础]——图解JOIN
  9. 自己制作精美的App Store 软件截屏
  10. 显示GetLastError()的错误描述字符串
  11. Advance Installer安装问题
  12. MongoDB--数据库与Collection注意事项
  13. [LeetCode] Split Array into Consecutive Subsequences 将数组分割成连续子序列
  14. Guava 教程(4):条件,多重映射和分片
  15. 【Java】【11】String数组和List相互转换
  16. java虚拟机——垃圾回收机制
  17. 学习flask需要用到的包
  18. 2019.03.25 bzoj4567: [Scoi2016]背单词(trie+贪心)
  19. Easy APNs Provider 消息推送测试工具
  20. Sqlserver 数据库、表常用查询操作

热门文章

  1. C# File.Exists 判断系统文件,警惕32位和64位的差异
  2. Java面试必问:ThreadLocal终极篇 淦!
  3. 1_Java语言概述
  4. 判断js中数组是否包含某值
  5. Python3.7安装pyaudio库报错问题及修复
  6. int转换sys,argv参数问题
  7. PDO::errorCode
  8. git原理及如何选择分支模式
  9. Sharding-JDBC实现垂直拆分
  10. Eclipse Java EE IDE for Web Developers 4.5.1 安装hibername tools 插件