NPM 简介
Node Package Manager (NPM) 是 Node.js 环境中不可或缺的命令行工具,充当包管理器来安装、更新和管理 Node.js 应用程序的库、包和模块。对于每个 Node.js 开发人员来说,无论他们的经验水平如何,它都是一个关键工具。
NPM 的主要目的是管理 Node.js 项目中常见的外部库和依赖项。除此之外,它还有助于共享和分发代码、运行脚本以及创建新项目,展示了其在 Node.js 生态系统中的多功能性。
本指南旨在成为一份备忘单,一个快速参考,您可以反复查看以了解并充分利用 NPM 的特性和功能。
NPM 及其在 Node.js 中的重要性
NPM 将您的应用程序与全球开发者社区联系起来,提供对大量软件包和库的访问。这使得能够利用集体解决方案和专业知识,而不是从头开始。
NPM 的优势在于其简单性和效率,简化了应用程序所需包的管理,根据项目的范围,包的数量从几个到数百个不等。声明您需要什么,NPM 会处理剩下的事情——根据需要获取、安装和更新包。
了解 NPM 命令
NPM 命令是您可以使用 NPM 工具执行的操作。这些被输入到命令行中,并且通常后跟一个或多个参数。例如,在命令中npm install express
,“install”是命令,“express”是参数。
有许多可用的 NPM 命令,每个命令都旨在执行特定操作。虽然了解和理解所有这些内容是有益的,但在实践中,您会发现其中一些内容的使用频率比其他内容要高得多。这些是我们将在本指南中重点关注的内容。
下表总结了最常用的 NPM 命令以及它们的用途的简要说明:
命令 | 描述 |
---|---|
npm init | 初始化一个新的NPM项目并package.json 在目录中创建一个新文件。 |
npm install | 安装文件中列出的所有依赖项package.json 。 |
npm install [package] | 安装特定包并将其添加到文件中的依赖项列表中package.json 。 |
npm install [package] --save-dev | 安装特定包作为开发依赖项。 |
npm uninstall [package] | 从节点模块和文件中删除特定包package.json 。 |
npm update | 将所有包更新到最新版本,如文件中的版本范围所指定package.json 。 |
npm update [package] | 将特定包更新到最新版本。 |
npm ls | 显示当前项目的依赖关系树,显示所有已安装的包及其依赖关系。 |
npm run [script] | scripts 运行文件部分中定义的脚本package.json 。 |
npm test | scripts 运行文件部分中定义的测试脚本package.json 。 |
npm publish | 将包发布到 NPM 注册表。 |
npm version [update_type] | package.json 根据指定的更新类型(主要、次要或补丁)更新文件中的版本号。 |
npm audit | 检查已安装软件包中的已知漏洞并提出修复建议。 |
npm cache clean --force | 清除 NPM 缓存,通常用于解决安装包的问题。 |
npm outdated | 检查是否有过时的软件包。 |
npm root | 显示存储包的根目录。 |
npm config get prefix | 获取全局包的安装目录。 |
该表提供了这些命令及其功能的高级概述,但每个命令的深度和复杂性都比此处介绍的要深。了解每个命令的复杂性对于有效且高效地使用 NPM 至关重要。
深入研究 NPM 命令
在下面的部分中,我们将更详细地了解每个命令,扩展它们的用途、语法,并提供如何使用它们的示例。
npm init
npm init
是用于创建新 NPM 项目的命令。当您运行此命令时,NPM 将提示您提供有关项目的一些信息,例如项目名称、版本、描述、主文件、测试命令、Git 存储库、关键字、作者和许可证。
然后,使用这些详细信息在当前目录中创建一个package.json
文件,该文件用作项目的清单文件。该文件包含有关您的项目的元数据并列出其依赖项,允许 NPM 识别需要安装哪些软件包才能使您的项目正常运行。
您还可以使用默认值npm init -y
自动填写文件。package.json
当您想要快速设置项目而不提示输入时,这非常方便。
用法示例:
$ npm init
npm install
npm install
是最常用的 NPM 命令之一。它用于安装您的项目所依赖的包。此命令读取package.json
文件以识别项目的依赖项并安装它们。
如果您在命令后指定包名称npm install
,NPM 将安装该特定包。默认情况下,它会安装最新版本的软件包。但是,如果您需要特定版本的包,您还可以指定版本号、标签或版本范围。
用法示例:
$ npm install
$ npm install express
$ npm install express@4.17.1
$ npm install express@latest
npm install [package] --save-dev
虽然该npm install [package]
命令将包安装为生产依赖项,但有时您需要安装仅开发所需的包。例如,测试库、转译器和 linter 都是通常仅在开发过程中而不是在生产中需要的包。
这就是npm install [package] --save-dev
命令的用武之地。它安装指定的包并将其添加到文件的“devDependency”部分package.json
,表明它只是一个开发依赖项。
用法示例:
$ npm install jest --save-dev
npm unistall
正如您可以使用 NPM 安装软件包一样,您也可以使用命令npm uninstall
后跟要删除的软件包的名称来删除它们。
此命令从 node_modules 目录中删除指定的包,并更新package.json
和package-lock.json
文件以反映包的删除。
用法示例:
$ npm update
$ npm update express
npm update
随着时间的推移,您在项目中使用的软件包可能会由其维护者进行更新,以包含新功能、修复错误或修补安全漏洞。保持软件包更新以便从这些更改中受益非常重要。
该npm update
命令可以帮助您执行此操作。当不带任何参数运行时,此命令会检查文件中列出的所有包package.json
,并根据定义的范围将它们更新到最新版本。
您还可以通过在命令后指定包名称来将特定包更新到最新版本npm update
。
用法示例:
$ npm ls
$ npm ls express
npm LS
该npm ls
命令用于列出已安装的软件包及其依赖项。当您想要查看已安装的软件包或其依赖项的版本时,此命令特别有用。
默认情况下,npm ls
显示当前项目的依赖关系树。但是,您可以指定包名称以查看该包的版本及其依赖项。
用法示例:
$ npm ls
$ npm ls express
npm run [script]
该npm run
命令用于执行文件scripts
部分中定义的脚本package.json
。这可以包括用于构建应用程序、运行测试、启动应用程序等的脚本。
要运行脚本,您只需在命令后面加上npm run
要运行的脚本的名称即可。
用法示例:
$ npm run start
$ npm run test
npm test
该npm test
命令是 的快捷方式npm run test
。它用于运行scripts
文件部分中定义的测试脚本package.json
。
用法示例:
$ npm test
npm publish
如果您开发了一个 Node.js 包并希望与其他人共享,您可以使用该npm publish
命令将其发布到 NPM 注册表。一旦您的软件包发布,其他人就可以使用该npm install
命令安装它。
在发布包之前,您需要在 NPM 网站上创建一个帐户并使用命令登录您的帐户npm login
。
用法示例:
$ npm publish
npm version [update_type]
该npm version
命令用于更新软件包的版本号。此命令更新文件中的版本号package.json
,并使用更新的版本号创建一个新的 Git 标记。
您需要在npm version
命令后指定更新类型,可以是“补丁”、“次要”或“主要”,具体取决于新版本中所做更改的性质。
用法示例:
$ npm version patch
$ npm version minor
$ npm version major
npm audit
该npm audit
命令用于识别项目依赖项中已知的安全漏洞。当您运行此命令时,NPM 会package.json
根据 Node Security Platform 数据库检查文件中的包以查找漏洞。
该npm audit
命令不仅可以识别漏洞,还可以提供有关每个漏洞的详细信息,并建议修复这些漏洞的命令。
用法示例:
$ npm audit
npm cache clean --force
该npm cache clean --force
命令用于清除NPM缓存。缓存是数据的存储,以便将来可以再次使用。 NPM 使用缓存来存储已安装的包,因此在需要时不需要再次获取它们。
清除缓存可以帮助解决安装或更新软件包时的一些问题。
用法示例:
$ npm cache clean --force
npm outdated
该npm outdated
命令用于检查过期的软件包。当您运行此命令时,NPM 会检查您文件中的包package.json
,并将您已安装的版本与 NPM 注册表上可用的最新版本进行比较。
如果有任何过时的软件包,此命令将列出它们以及您拥有的当前版本、可用的最新版本以及文件中定义的版本package.json
。
用法示例:
$ npm outdated
npm root
该npm root
命令用于查找安装包的根目录。如果您需要知道软件包的安装位置或者您遇到软件包问题并需要检查其文件,这会很有用。
用法示例:
$ npm root
npm config get prefix
该npm config get prefix
命令用于获取全局包的安装目录。这通常发生 /usr/local
在 Unix 系统和C:\Users\<username>\AppData\Roaming\npm
Windows 上。
用法示例:
$ npm config get prefix
本综合指南深入概述了最常用的 NPM 命令。无论您是 Node.js 新手还是经验丰富的开发人员,对这些命令的深入理解都可以让您的开发过程更加高效和愉快。
NPM 是一个强大的工具,提供了广泛的功能。了解如何利用这些功能可以极大地增强您的 Node.js 开发体验。因此,请使用本指南作为参考来了解并充分利用 NPM 的特性和功能。
请记住,官方NPM 文档始终提供更详细的信息,并帮助您探索本指南中未涵盖的其他命令和功能。
有了这些命令,您就可以管理 Node.js 项目的依赖项并确保应用程序顺利运行。