返回顶部
首页 > 资讯 > 后端开发 > Python >使用nvm让不同版本的Node.js共存
  • 311
分享到

使用nvm让不同版本的Node.js共存

版本nvmjs 2023-01-31 07:01:31 311人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

译者导读如果使用过python,可能对Python的多版本共存有印象。python3虽然是目前推荐的版本,但是Python2仍然有许多Lib没有支持到Python3。此时我们可以用pyenv或者virtualenv或者直接用官方最新的的py

译者导读

如果使用过python,可能对Python的多版本共存有印象。python3虽然是目前推荐的版本,但是Python2仍然有许多Lib没有支持到Python3。此时我们可以用pyenv或者virtualenv或者直接用官方最新的的pyvenv。
同样的,在node.js中,我们也能实现这个功能。

正文

当我们在开发的时候,通常会遇到这么一种情况:手上有好几个项目,每个项目有不同需求,而不同项目必须运行在不同版本的node.js中。如果没有一个合适的工具,那这个问题将会很难解决。因此,nvm诞生了。

安装nvm

nvm是Node Version Manager的缩写(注意不是Virtual Machine)。从名字看出,nvm就是一个版本管理器。它提供了一个命令行接口让我们可以用一个命令安装不同版本的Node,让我们可以设置默认环境,并在不同环境中切换。

操作系统支持

nvm支持linux和OSX,但这并不是说Window不能用。nvm-windows就是在Windows上运行的版本。不过,nvm-windows并不是nvm的简单移植,也和它没有任何关系。但下面介绍的所有命令,都可以运行在nvm-windows中。

安装

Windows

首先最重要的是:一定要卸载原本已经安装过的Node.js,否则会发生冲突的。然后下载nvm-windows最新的安装包。直接安装即可。

OS X/Linux

和Windows不同,我们并不一定要先卸载原有的Node。当然我们推荐还是先卸载掉比较好。另外,你还需要c++编译器,Linux发行版一般不用担心,像ubuntu都可以直接用build-essential套件,OS X的话,可以用X-Code的命令行工具。运行这个命令即可:

xcode-select --install

在Linux中:(如果是Debian发行版的话)

sudo apt-get install build-essential

然后我们可以用

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

或者

wget -qO- Https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash

从远程下载install.sh脚本并执行。注意这个版本年数字(v0.31.0)会随着项目开发而变化。随时通过官方最新安装命令来检查最新安装版本是有好处的。

使用nvm

如果安装成功了,我们可以从命令行运行命令nvm

安装多版本Node.js

例如,我们要安装4.2.2版本,可以用如下命令:

nvm install 4.2.2

nvm遵守语义化版本命名规则。例如,你想安装最新的4.2系列的最新的一个版本的话,可以运行:

nvm install 4.2

nvm会寻找4.2.x中最高的版本来安装。在写作本文的时候,x=6。
你可以通过以下命令来列出远程服务器上所有的可用版本:

nvm ls-remote

Windows的话,就是:

nvm ls available

在多环境中,npm该如何使用呢?

每个版本的Node都会自带一个不同版本的npm,可以用npm -v来查看npm的版本。全局安装的npm包并不会在不同的Node环境中共享,因为这会引起兼容问题。它们被放在了不同版本的目录下,例如~/.nvm/versions/node/<version>/lib/node_modules这样的目录。这刚好也省去我们在Linux中使用sudo的功夫了。因为这是用户的主文件夹,并不会引起权限问题。

但问题来了,我要装的每个版本的Node里的包,都要重新再装一次?幸运的是,我们有个办法来解决我们的问题,运行下面这个命令,可以从特定版本导入到我们将要安装的新版本Node

nvm install v5.0.0 --reinstall-packages-from=4.2

除此之外,npm还可以安装Node的其他实现。例如iojs(一个基于es6的Node实现,现在已经和Node合并,不再开发——译者注)

nvm install iojs-v3.2.0

上面的命令讲会安装iojs到系统中。
下面几个是方便我们使用的快捷命令:

  • node – 安装最新版Node

  • iojs – 安装最新版iojs(目前iojs已经停止开发——译者注)

  • unstable – 安装最新不稳定版本的Node
    例如,我们可以用下面的命令直接安装最新版Node:

nvm uninstall 4.2.2

在不同版本间切换

首先,每当我们安装了一个新版本Node后,全局环境会自动把这个新版本设置为默认。
nvm提供了一个命令nvm use。这个命令的使用方法和install命令类似。例如,切换到4.2.2:

nvm use 4.2.2

切换到最新的4.2.6(本文写作的时候最新版是4.2.6):

nvm use 4.2

切换到iojs:

nvm use iojs-v3.2.0

切换到最新版:

nvm use node

每次执行切换的时候,系统都会把node的可执行文件链接放到特定版本的文件上。
我们还可以用nvm给不同的版本号设置别名(注意这里是给版本号设置别名,不是给不同版本的Node实例设置别名——译者注):

nvm alias awesome-version 4.2.2

这样一来,我们给4.2.2这个版本号起了一个名字叫做awesome-version,然后我们可以运行:

nvm use awesome-version

来切换。
下面这个命令可以取消别名:

nvm unalias awesome-version

另外,你还可以设置default这个特殊别名

nvm alias default node

这个操作可以设置默认的实例,并且在其他操作中也有用。

列出已安装实例

执行

nvm ls

上面绿色箭头是当前正在使用的版本,下面列出的还有设置过的别名。

在每个项目中使用不同版本

我们可以通过创建项目目录中的.nvmrc文件来指定要使用的Node版本。之后在项目目录中执行nvm use即可。.nvmrc文件内容只需要遵守上文提到的语义化版本规则即可。另外还有个工具叫做avn,可以自动化这个过程。

其他命令

直接运行特定版本的Node

nvm run 4.2.2 --version

在当前终端的子进程中运行特定版本的Node

nvm exec 4.2.2 node --version

确认某个版本Node的路径

nvm which 4.2.2

原文信息

原文链接:http://www.sitepoint.com/quick-tip-multiple-versions-node-nvm/
原文作者: Bruno Mota
原文发布日期:2016年3月14日
翻译时间:2016年4月4日
原作者简介:精通JS,7年WEB从业经验。主要贡献开源项目有Relax,一个基于JS的CMS系统。

本翻译转载请注明出处:风虎技术博客


--结束END--

本文标题: 使用nvm让不同版本的Node.js共存

本文链接: https://lsjlt.com/news/191333.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作