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

2025年4月26日 | 阅读 4 分钟

在 Node.js 应用开发中,没有什么比灵活性和依赖管理更重要了。NPM(Node 包管理器)通过一系列命令,如 npm installnpm update,使得这一切变得容易,每个命令都有其特定的功能。使用 npm install,我们可以添加新包或安装 package.json 文件中的所有依赖项,以确保一切设置正确。另一方面,npm update 用于将已安装的包升级到其特定的兼容最新版本,确保项目的安全性和时效性。虽然这两个命令看起来相似,但为了拥有一个开发良好且无冲突的环境,选择正确的命令对于开发一个好的程序至关重要。

什么是 npm install?

npm install 命令用于在 Node.js 项目中安装包。

语法

它具有以下语法:

  • <package-name>: 指定要安装的包的名称。
  • --save: 将包添加为 package.json 文件中的依赖项。
  • --save-dev: 将包添加为 package.json 中的开发依赖项。

参数

参数描述
<package-name>要安装的包的名称(可选)。
--save将包添加到 package.json 的 dependencies 部分。
--save-dev将包添加到 package.json 的 devDependencies 部分。
--global将包全局安装在系统上,而不是安装在本地项目中。
--production仅安装 dependencies 部分列出的包。

示例

  • 本地安装特定包

输出

 
+ lodash@4.17.21
added 1 package in 3.2s   
  • 安装 package.json 中的所有依赖项

输出

 
added 250 packages in 15.5s   
  • 全局安装包

输出

 
+ nodemon@2.0.22
added 1 package in 2.1s   

什么是 npm update?

npm update 命令会根据 package.json 文件中指定的版本范围,为所有已安装的包安装新版本。它会更改 node_modules,重写 package-lock.json,并且仅在使用了指定范围之前/之后的版本时重写 package.json。

语法

它具有以下语法:

  • <package-name>: 指定要更新的包的名称(可选)。

参数

参数描述
<package-name>要更新的包的名称(可选)。
-g更新全局包。
--force强制更新,即使可能导致冲突。
--save更新 package.json 中的 dependencies 部分。

用例

何时使用 npm install

  • 初始设置: 克隆项目后应使用 npm install 命令下载该项目的所有依赖项。
  • 添加新依赖项: 用于安装新包,并且会自动将它们添加到 package.json 中。
  • 恢复丢失的依赖项: 通过运行 npm install 命令,如果 node_modules 目录被删除,则会重新创建它。

何时使用 npm update

  • 定期维护: 将包尽可能地保持在次要版本号顶部的所需版本附近。
  • 安全补丁: 升级依赖项以包含最新的安全补丁。
  • 性能改进: 软件更新通常会带来新功能和更好的性能。

优点

npm install

Node.js 中 npm install 的几个优点如下

  • 易于使用: 它在命令提示符下运行,并根据 package.json 文件安装依赖项包。
  • 版本控制: 它引入了由版本管理的依赖项,因为它维护了使用的环境。
  • 可重现性: 它组织项目内的包,通过创建 package-lock.json 文件,确保在不同系统上安装的一致性。

npm update

Node.js 中 npm update 的几个优点如下

  • 效率: 它只更新已安装但需要新副本的包,与重新安装整个包相比节省了时间。
  • 提高稳定性: 它不会冒险引入破坏性更改来创新包:将包保持在安全的版本范围内。
  • 安全性: 它通过实施已知风险的包来帮助保持代码结构的安全性。

结论

总之,成功的依赖管理对于应用程序的整体稳定性、安全性和性能至关重要,尤其是在开发 Node.js 应用程序时。如前所述,npm installnpm update 在此过程中扮演着不同的角色。npm install 对于新项目的启动和添加新依赖项至关重要,而 npm update 在检查更新和安装包的最新安全版本方面同样重要。

使用这些命令作为指导意味着您必须始终了解项目中最适合使用的版本,具体取决于它们何时被引入项目声明中,从而最大限度地减少因包依赖而产生的常见问题。