node.js与nvm、npm的关系

5,434 阅读4分钟

在开发node.js应用项目的时候,我们经常会用到两个工具:nvm 和 npm。这两个工具功能完全不同却因为名称很像,导致初接触的时候往往容易搞混淆。

nvm介绍

nvm,全称是Node Version Manager,是用来管理node.js的版本的。
因为Node.js在不断的被完善,分版本迭代更新。
当前版本:nodejs.org/en/download…
历史版本:nodejs.org/en/download…
不同的node项目所依赖的node版本可能不相同,本机也支持安装多个node版本,所以可以通过nvm来管理node的版本。

常用命令

  • 安装最新的版本:nvm install latest
  • 卸载某个版本:nvm uninstall 版本号
  • 查看当前版本:nvm version 或 nvm current
  • 安装的版本列表:nvm list
  • 使用固定版本:nvm use 版本号

npm介绍

npm官网地址:www.npmjs.com/
npm官方文档:docs.npmjs.com/

npm,全称是Node Package Manager,是以JavaScript编写的软件包管理工具。用来安装node项目所需要的一堆依赖包。
在运行一些node项目的时候,我们经常需要在项目的根目录下先执行命令

npm install

该命令就是根据项目根目录下的package.json配置文件,通过npm工具来安装项目所需要的一堆依赖包。

npm由来

文章npm 是干什么的?里介绍了npm的来历:
npm是一个前端项目的包管理工具,在没有npm之前,一个前端项目想要使用其他项目的代码,即把别人写的javascript代码引入到项目中直接用,避免重复造轮子,提高开发效率,需要跑到其他项目对应的官网上去下载对应的代码放到自己的项目里,导致如果该项目需要依赖其他很多的项目,然后就要访问不同的网址去下载对应的代码

  • 去 jQuery 官网下载 jQuery
  • 去 BootStrap 官网下载 BootStrap
  • 去 Underscore 官网下载 Underscore
  • ……

如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。这样一来,肯定很麻烦的,一位优秀的程序员忍不了,使用JavaScript开发了npm工具,通过它来解决这个问题。于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。

如今,npm (node package manager)已经是前端开发广泛使用的包管理工具,大家也都通过npm来分享JS代码。

npm安装

npm运行在 Node上的,所以需要安装Node环境。
不过其实npm已经在Node.js安装的时候顺带装好了。我们在命令提示符或者终端输入

npm -v

应该看到类似的输出:

npm常用命令

  • 查看当前npm版本: npm -v
  • 安装包
    • npm install 包名
    • npm install 包名 -g : 全局安装,安装后在命令行任意目录下可直接使用包命令
  • 更新包: npm install 包名@latest
  • 卸载包: npm uninstall 包名
  • 根据guide创建一个package.json文件: npm init
  • 换源:npm --registry 源地址

package 和 package.json文件

package(包)是用javascript代码编写的功能包 package.json文件是包的描述文件,在每个项目的根目录下面。

  • 描述包的信息(比如名称、版本、入口文件等),以便发布到npm registry
  • 描述项目所需的依赖包,方便通过npm install下载安装 package.json文件的字段详情介绍参考:javascript.ruanyifeng.com/nodejs/pack…

在运行一些node项目的时候,我们经常需要在项目的根目录下先执行命令

npm install

该命令就是根据项目根目录下的package.json配置文件,通过npm工具来安装项目所需要的一堆依赖包。

npm 共享 JS 代码的过程就是:

  1. 有一个统一的package代码仓库 (npm官网)
  2. 编写自己的package和package.json文件(参考npm官方文档介绍)
  3. 通过 npm publish 把package放到这个仓库里
  4. 其他人的项目里想要使用某些package就写到package.json文件中,然后运行npm install,就会自动将这些代码下载下来,统一放到node_modules目录中。

总结

nvm 和 npm 都是 node.js应用程序开发的常用工具。
nvm是node.js版本管理工具。
npm是JavaScript包管理工具。