安装node:如何用asdf-nodejs安装多个版本并检查路径
在这篇文章中,我们将快速浏览一下JavaScript开发环境,并总结出安装node、npm甚至yarn的最佳方法。 特别是,我们将使用版本管理器来安装node,这是为将来可能使用的许多版本的node做准备的一个好方法。
1. 了解JavaScript的开发环境
JavaScript(简称JS)是作为一种语言创建的,用于在网络浏览器中为HTML添加动态功能。 因此,JS代码只能在网络浏览器中执行。
但在2009年,Ryan Dahl发布了一个名为node.js的JS运行时,基于Chrome浏览器的V8引擎。 现在有可能在网络浏览器之外运行JS了。
以node为跳板,JS迅速成为一种主流语言。 尤其是它简单的语法、强大的异步性能、事件循环结构和庞大的社区支持的库,使它成为所有平台上开发者的最爱,而不仅仅是网络。 这种JS开发从在任何平台上安装node开始。就像Java开发从安装JDK开始一样。
安装node最简单的方法是从官方网站下载安装程序文件并运行它。 然而,如果你需要多个版本的node,这种方法需要你经历一个繁琐的安装过程。 为了解决这个问题,有各种版本管理器,可以帮助你安装和切换不同版本的JS。
我们将使用的版本管理器是asdf-nodejs。
2. asdf-nodejs
asdf-nodejs是一个插件,允许asdf管理node.js。 我们可以在asdf中安装各种语言和开发工具插件,允许我们用一个程序对几乎所有语言和工具进行版本控制。 更多信息请参见asdf的帖子。
asdf-nodejs是四个插件之一,由asdf团队正式维护。 所以你可以放心地使用它。 下面的步骤假设你已经使用上述帖子安装并配置了ASDF。
3. 安装asdf-nodejs插件
下面的一切对MacOS和Windows都是一样的。打开你在每个操作系统上使用的终端,输入下面的命令来添加该插件。
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
如果你没有得到任何错误信息,说明它已经安装成功。 要验证该插件是否工作,请键入以下命令,它将列出你可以安装的所有节点版本。
asdf list all nodejs
执行结果:
正如你所看到的,你会得到很多节点的版本。 如果你需要一个特定的版本,请检查它是否可用于安装。 如果没有,你可以为你要部署的服务安装最新的长期支持(LTS)版本,或者最新的当前版本。
轻装上阵,因为如果你遇到库的兼容性问题,你可以轻松地切换版本。
如上所示,你也可以使用asdf list all nodejs [specific_string]
命令,只列出包含特定字符串的版本。
4. 用asdf-nodejs安装最新的节点
一旦你决定要安装哪个版本的nodejs,我们就来安装它。
我打算安装LTS版本。
正如list all
命令所显示的,最新的node LTS版本有自己的代码名。
最新的LTS代号可以在nodejs github的CHANGELOG.md文件 (opens in a new tab)中找到,或者在
CODENAMES.md文件 (opens in a new tab)。
安装node的命令是
asdf install nodejs [version_name]
对于[version_name]
,你可以输入任何代码,以获得准确的版本钩。
你也可以指定lts
或latest
,分别安装最新的LTS版本或当前版本。
安装后,运行以下命令,检查你的机器上安装的是哪个版本。
asdf list nodejs
执行结果:
5. 检查node js的安装路径
由asdf-nodejs安装的不同版本的node都存储在~/.asdf/installs/nodejs
内。
你也可以用下面的命令得到一个特定版本的安装路径。
asdf where nodejs [version_name]
执行结果:
使用ls -al
命令,我可以看到,如果我用代码名安装,它将安装正确的版本,并创建一个指向它的链接。
6. 设置为已安装的节点版本
现在你已经下载并安装了node,你需要配置你的机器以使用你安装的node版本。 asdf-nodejs允许你在三个方面设置所需的node
- 在当前壳中使用
- 在当前目录中使用
- 在这台计算机的任何地方使用
如果这三个范围都被设置了,它们就有最高的优先权,顺序是:shell、目录和全局。
6.1. 在当前的shell中激活
要只在当前的shell中激活,命令是
asdf shell nodejs [version_name]
在这种情况下,如果你通过退出当前打开的终端关闭shell,设置将被重置。
执行的结果:
检查shell重新运行后的节点版本:
在上面的例子中,你可以看到,原来在机器上使用的节点的19
版本被asdf shell
命令改成了18
。
之后,当重新打开终端,并打开一个新的shell时,设置被初始化了。
6.2. 在当前目录下使用
这里是如何设置在当前目录中使用的node版本。 如果你在不同的项目中使用不同的版本,这可能非常有用,因为它会自动加载你设置的版本。 命令如下
asdf local nodejs [version_name]
让我们通过一个例子来检查一下。
执行的结果:
我们已经创建了一个名为 node-test
的目录,并使用该命令来启用 18
版本的node。
父目录所使用的节点是19
版本。
但是,如果你进入node-test
目录,你会看到它自动变为你设置的18版本。
6.3. 启用机器范围
最后,我们可以在整个机器上启用它。命令如下
asdf global nodejs [version_name]
再一次,让我们用一个例子来检查。
执行的结果:
它最初被设置为版本19
,当我们输入asdf list nodejs
命令时,它的前缀是*
。
然后我用global
命令将其改为LTS版本,你可以看到它已经变成了这个版本。
如果你用同样的命令切换回19
,它将正常改变。
7. 验证配置的node.js可执行文件的路径
作为参考,用asdf配置的node可执行文件的路径总是~/.asdf/shims/node
。
ASDF使用通常被称为shim的技术运行配置的NODE版本。
其路径如下所示。
which node
执行结果:
8. 安装npm
8.1. 检查npm版本
npm是node使用的最流行的软件包管理器,在安装node时,它与node一起安装。
不同的node版本会安装不同版本的npm,它们所安装的包的管理方式也不同。
如果你改变了node的版本,然后用npm --version
命令检查版本,你会发现不同的node版本有不同的npm版本。
执行的结果:
8.2. 检查npm的安装路径
安装的npm可执行文件的路径是~/.asdf/shims/npm
,而实际的安装路径是~/.asdf/installs/nodejs/[version_name]/lib/node_modules/npm/bin/npm-cli.js
。
8.3.. 验证npx的安装路径
安装的npm可执行文件的路径是~/.asdf/shims/npx
,而实际安装的路径是~/.asdf/installs/nodejs/[version_name]/lib/node_modules/npm/bin/npx-cli.js
。
9. 安装yarn
除了npm,yarn,最流行的JS包管理器之一,也可以使用asdf轻松安装。 然而,yarn总是先安装node,所以用asdf安装它将导致你重新安装node。 因此,我们建议使用npm为每个node版本安装它作为一个全局包。
在全局安装了node后,输入以下命令。
npm install --global yarn
执行结果:
如果安装成功完成,用以下命令检查软件包列表。
npm list --global
执行的结果:
9.1. 检查yarn的版本
最后,检查yarn版本检查命令的结果。
yarn --version
执行结果:
10. 总结
asdf-nodejs是安装node、npm和yarn的最佳方式之一。 特别是,能够在特定的文件夹中指定一个node版本,并且能够轻松地改变你在整个机器上使用的版本,我想我在未来会经常使用。 我希望这篇文章能帮助你快速、轻松地开始JS开发。
