如何管理 Node.js 项目中的包?
Node.js是一个开源、跨平台的后端 JavaScript 运行环境,构建在 V8 引擎之上,在浏览器之外执行 JavaScript 代码。在 Node.js 中处理项目时,您可能会编写代码来实现特定功能或解决特定问题。有一些代码可以在类似情况下重用。
模块是由 Javascript 函数和对象组成的可重用代码块,它们根据功能与外部应用程序通信。包经常与模块混淆,但它只是模块(库)的集合。假设您正在尝试设计一辆汽车。你可以尝试自己制造汽车的每一个部件,从开采金属到熔化铸件以及所有其他过程。但是,这将花费您大量的时间并且相当昂贵。相反,我们将购买预制零件并将它们组装成一辆工作车。同样,您可以根据您的要求将其他开发人员的可重用代码集成到您的项目中。让我们看看如何使用其他开发人员创建的包并对其进行管理。这一切都从NPM开始。
NPM 代表节点包管理器。它是 Node JavaScript 平台的包管理器,它由一个名为 npm 注册表的在线包数据库组成,允许世界各地的开源开发人员发布和共享他们的代码。
NPM 包含三个基本组件:
- 您可以在网站上找到来自第三方的包,设置配置文件并管理它们。
- NPM CLI是一个命令行界面,可让您从终端与 NPM 进行交互。
- Registry ——Javascript代码共享的中心。
开发人员A可以在NPM 注册表上共享代码,开发人员B 、 C和D可以通过安装适当的包来重用这些代码。
1. 您现在可以依赖其他人编写的预构建代码。为此,您必须在设备上安装 NPM。 NPM 包与 Node.js 捆绑在一起。要集成 NPM,请下载 Node.js 。下载 Node.js 运行时环境后,您可以前往终端。
检查系统上当前的 NPM 版本。
npm -v
2. 通过使用 npm,您可以从注册表中安装新的包。您的项目可能需要多个包。在我们的根项目中,我们有一个package.json文件,用于跟踪所有已安装的包。 package.json包含与项目相关的重要元数据,还定义了项目的功能属性,npm 使用这些属性来安装依赖项、运行脚本和识别包的入口点。
要创建 package.json 文件,请转到项目的根目录并执行以下命令:
npm init
运行 npm init 命令时,系统会提示您输入有关项目的信息,例如:
- 包裹名字
- 版本
- 测试命令
- Git 存储库
- 关键词
- 作者
- 执照
您可以通过运行使用默认值:
npm init --y
稍后,您可以修改 package.json 中的默认值。
3. 现在让我们集成一些包。您可以在本地和全局系统上安装 npm 包。
本地:通过运行以下命令将包安装在只能从该文件夹访问的项目文件夹中:
npm install
for example : npm install express
Express 是一个 node.js 框架,为 Web 应用程序提供服务器端逻辑。
全局:可以从任何目录访问包函数。要全局安装软件包,请运行以下命令。
npm install --g
for example : npm install nodemon --g
当在文件中检测到更改时,nodemon 会自动重新启动 node.js 应用程序。
4. 在某些情况下,您可能希望安装仅在开发环境中运行的包。为此运行以下命令。
npm install --save-dev
for example : npm install lodash --save-dev
lodash 是一个 Javascript 库,它为编程提供实用功能,使其更容易和更高效。除了 metadata , package.json 文件还包含dependencies ,它们是安装在您的应用程序中的包。它是您的项目所依赖的一组函数。安装包后,您会注意到package-lock.json文件和node_modules文件夹已创建。
5. NPM 将所有包存储在node_modules文件夹中。除了您安装的软件包,您还可以看到一堆其他文件。安装包以使用其他人的代码会使您的项目依赖于该包。这些包又使用其他包的代码。这些是您的包所依赖的文件夹。因此,node_modules 文件夹被认为是宇宙中最密集的对象。
要将所有已安装的包作为依赖树查看,请运行npm list 。
npm list
6. 要查看您已安装的软件包,请运行以下命令:
npm list --depth=0
要理解 package-lock.json 文件,让我们先看看 npm 是如何使用语义版本控制的。每次安装软件包时,都会获得最新的公开版本。在 package.json 的依赖项部分,你会发现每个包都被安装为一个键:值对(“package”:“*1.0.0”),包名后跟版本号。包由不同的作者创建并且相互依赖。但是,它们是独立更新的,这可能会导致冲突和错误。因此,NPM 包遵循语义版本控制,这是一个对软件版本进行编号的系统,每个数字包含三个数字,以点分隔,表示主要、次要和补丁版本。
在主要版本中,您进行了主要且不兼容的 API 更改。在次要版本中,您以向后兼容的方式添加功能,而补丁版本包括所有错误修复。默认情况下,包版本以^(插入符号)字符为前缀,指示 NPM 如何处理下一个包更新。它将允许版本的补丁和次要更新。
要安装特定版本的包运行:
npm install [package-name]@[version-number]
for example : npm install brcypt@5.0.1