依赖是指可能由他人编写的第三方软件,理想情况下能够为你解决单一的问题。
一个 Web 项目可以有任意数量的依赖,从无到多,并且你的依赖里可以包含了你没有明确安装的子依赖(依赖的依赖)。
如果你发现一个更好的工具来代替当前工具,或者你想更新依赖的新版本,会发生什么?
对于只有几个依赖的项目来说来说,这并不痛苦,但对于具有许多依赖项的大型项目来说,这种事情可能会变得非常具有挑战性。这就需要用到 npm 这样的软件包管理器。
软件包管理器(Package Manager)是一个用于管理软件包(也就是依赖)的工具,主要负责自动化软件安装、更新、配置和删除等任务。它在软件开发和系统管理中起着重要作用。软件包管理器的作用包括:
常见的软件包管理器包括:
在使用包管理工具(如 npm)时,通常有两种安装模式:全局安装和项目安装。了解这两种安装模式的区别及其适用场景非常重要。
全局安装 是将包或工具安装在系统的全局环境中,使其可以在任何地方使用。这种安装方式通常用于命令行工具或需要在多个项目中使用的工具。
typescript
、eslint
等。项目安装 是将包或工具安装在特定项目的目录中,使其只对该项目有效。这种安装方式通常用于项目的依赖库,确保项目的环境独立。
node_modules
文件夹中,只能在该项目中使用 。软件包仓库是存储和分发软件包的平台。
为了使软件包管理器工作,它需要知道从哪里安装软件包,这是通过软件包仓库实现的。
npm 不是唯一的选择。你可以管理自己的软件包仓库——例如 Microsoft Azure 等产品允许你创建到 npm 仓库的代理,GitHub 也提供软件包仓库服务。
其他用途的软件仓库:
使用 npm(Node Package Manager)是管理 JavaScript 和 Node.js 项目依赖的常用方法。以下是一些常见的 npm 使用方法和命令,帮助你更好地管理项目依赖。
首先,确保你已经安装了 Node.js。npm 通常随 Node.js 一起安装。你可以通过以下命令检查是否已经安装:
npm -v
如果没有安装,可以从 Node.js 官方网站 下载并安装 Node.js。
在一个新的或现有的项目目录中,你可以使用以下命令初始化一个新的 npm 项目:
npm init
这个命令会引导你创建一个 package.json
文件,其中包含项目的基本信息和依赖项。你也可以使用 -y
标志自动生成默认配置:
npm init -y
本地安装会将包安装到当前项目的 node_modules
文件夹中,并将其添加到 package.json
文件的 dependencies
部分:
npm install <package-name>
你也可以一次安装多个包:
npm install <package-name1> <package-name2>
全局安装会将包安装到系统的全局目录中,使其在系统中的任何地方都可以使用。通常用于命令行工具:
npm install -g
从当前项目中移除一个包并更新 package.json
文件:
npm uninstall
从全局环境中移除一个包:
npm uninstall -g
更新本地安装的包到最新版本,并更新 package.json
文件:
npm update
更新全局安装的包到最新版本:
npm update -g
查看本地安装的包信息:
npm list
查看特定包的信息:
npm list
查看全局安装的包信息:
npm list -g --depth=0
在 package.json
文件中,你可以定义脚本来简化常用的任务。例如,启动一个 Node.js 服务器:
"scripts": {
"start": "node index.js"
}
你可以使用以下命令运行这个脚本:
npm run start
为了确保你使用的包没有已知的安全漏洞,可以使用 npm audit
命令来检查项目依赖中的安全问题:
npm audit
如果发现问题,可以使用以下命令修复:
npm audit fix
如果你想将自己的包发布到 npm 仓库,可以使用以下命令:
npm publish
在此之前,请确保你已经登录 npm 账号:
npm login
pnpm 全称 performant npm,意思为 高性能的 npm。pnpm 由 npm/yarn 衍生而来,解决了 npm/yarn 内部潜在的 bug,极大的优化了性能,扩展了使用场景。被誉为最先进的包管理工具。
官网:https://pnpm.io/
中文网站:https://pnpm.io/zh/