📜  Node.js 中 npm install 和 npm update 的区别

📅  最后修改于: 2022-05-13 01:56:20.814000             🧑  作者: Mango

Node.js 中 npm install 和 npm update 的区别

NPM 就像 Node.js 的发电站,它包含所有必要的模块,以使 node.js 应用程序顺利运行。当我们在 Windows、Linux 或 MAC 操作系统上安装 Node.js 时,它会安装在我们的机器上。

如何在机器上安装 Node?参考 这篇文章。

NPM 有 580096 个注册包。这个数字的平均增长率是 291/天,这意味着不同类型的包的增长急剧增加,所以我们每次都必须在我们的机器上更新我们的节点?答案是不! NPM 允许我们根据工作需要在我们的机器上安装第三方模块。

另一个原因是预定义模块无法满足大型项目的需求,例如HTTP模块无法区分多种请求,因此我们必须在外部安装另一个流行的模块。即快递模块。

我们可以使用 Node Package Manager 提供的一些预定义命令访问第三方模块,如下所示:

初始项目结构

npm install命令:这个 npm 命令用于在我们当前目录中安装第三方模块。使用此命令有两种不同的方法:

  1. 无参数
  2. 带参数
  • 不带参数:当我们使用不带参数的 npm 命令时,该命令会自动下载我们目录中 package.json 文件中写入的所有依赖项。

Package.json:在目录中创建一个 package.json 文件,并在此文件中提及 express 依赖项。

{
  "name": "gfg",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1"
  }
}

运行npm install命令:

npm i 
or
npm install

更新的项目结构:

package-lock.json文件和node_modules创建的 package-lock.json 文件包含下载的额外依赖项的所有必要信息,并且 node_modules 文件夹包含与我们在 package.json 中指定的模块一起安装的所有不同类型的包。

  • 带参数:我们可以通过指定我们要为特定工作安装的第三方模块的名称来使用 npm install 命令。例如,让我们为 Node.js 下载 MongoDB 模块

参数:参数可以是我们要安装的模块的名称 或我们要在目录中安装所有第三方模块的文件夹名称。默认情况下,该文件夹是 node_modules ,其中包含所有已安装的模块。当我们第一次安装任何外部模块时,该文件夹会自动生成。

句法:

npm install [-g] [..]

说明:安装任何新模块后,新包将添加到 node_modules 文件夹,并且依赖项更新到 package.json 文件。

  1. 使用 npm 命令安装模块:
npm install 

package.json 文件:

npm update命令:此 npm 命令用于更新 package.json 文件中提到的依赖项,并在目录中安装所有缺少的包,还用于更新机器上的当前节点版本。此命令用于两种不同的方式:

  1. 无参数
  2. 带参数
  • 不带参数:不带参数的 npm update 适用于所有全局安装的包,并更新我们机器上可用的全局包的所有版本。

句法:

npm install -g 

更新全局安装的nodemon模块:

  • 带参数: npm update 命令将第二个参数作为我们要更新下一个版本或最新版本的依赖名。我们还可以借助一些保留符号将依赖项的更新限制为最新版本。如果我们仅通过提及其名称来安装依赖项,则将安装最新的依赖项补丁,但它可能会产生一些问题,因为当我们正在处理一个项目并希望几乎等于当前版本的依赖项时。我们无法安装特定的依赖项,我们将使用保留符号来转换依赖项的更新轨迹

Node.js 中使用的依赖项主要有以下几种类型:

1. Caret Dependencies:当 package.json 或 package.lock.json 文件中存在名为 Caret Symbol 的依赖项时,称为 Caret Dependencies。这些依赖项会更新到与该版本兼容的最新版本。

npm install 

这个 npm update 命令将更新到 2.3.3(考虑这个版本存在)并且 2.3.3 满足以前的版本

2.Tilde Dependencies: npm update命令会将这些依赖更新到排序最高的版本。这些依赖项使用 ~ 符号。

npm install mongodb

如果我们更新这个依赖,在这种情况下它会更新到 2.2.3 版本。

区别:

  • npm install安装package.json文件中列出的所有模块及其依赖项。
  • npm update更新node_modules 目录中的所有包及其依赖项。