一、nvm/nodejs/npm/npx 的联系和区别
-
nvm
nvm (Node Version Manager) 是一个用于管理 Node.js 版本的工具。它允许在同一台计算机上安装多个不同版本的 Node.js ,并且可以轻松地在这些版本之间进行切换。这对于开发人员来说很有用,因为不同的项目可能需要使用不同的 Node.js 版本。
说人话:nvm 用于管理安装和切换不同版本的 Node.js。 -
Node.js
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境。它允许在服务器端运行 JavaScript 代码,并提供了许多用于构建 Web 应用程序的功能和工具。Node.js 提供了广泛的库和模块,使得开发 Web 服务器、命令行工具和其他类型的应用程序变得更加简单。
说人话:以前的js是通过浏览器解析的,有node.js可以脱离浏览器的环境执行代码。 -
npm
npm (Node Package Manager) 是 Node.js 安装时默认自带的的包管理器。它允许通过命令行安装、升级、卸载和发布 Node.js 项目的软件包。npm 是 JavaScript 社区最流行的软件包管理器之一,它提供了大量的开源软件包供开发人员使用,可以轻松地查找、安装和更新依赖。 -
npx
npx(Node Package Executor) 是npm 5.2.0 版本引入的一个命令行工具。它允许执行来自任何 npm 软件包的命令,而无需全局安装这些软件包。通常,如果想在命令行运行某个软件包提供的命令,需要先全局安装该软件包,然后才能使用。但是,npx 允许在不安装软件包的情况下立即运行它们,这在临时使用和测试软件包时非常方便。它可以帮助避免全局安装一些只需要在项目中使用一次或少数几次的工具。
说人话:npx比npm更智能,npx会搜索后在下载。
因此,nvm 是管理 Node.js 版本的工具,
Node.js 是 JavaScript 运行时环境,
npm 是 Node.js 的软件包管理器,
npx 是 npm 的一个工具,
用于在不全局安装软件包的情况下运行软件包的命令。
二、关于npm
【碎碎念npm】
为啥我们需要一个包管理工具呢?因为我们在Node.js上开发时,会用到很多别人写的JavaScript代码。如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。
于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。
更重要的是,如果我们要使用模块A,而模块A又依赖于模块B,模块B又依赖于模块X和模块Y,npm可以根据依赖关系,把所有依赖的包都下载下来并管理起来。否则,靠我们自己手动管理,肯定既麻烦又容易出错。
【测试】
由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 “npm -v” 来测试是否成功安装