JavaScript(十八)的包管理工具

340 阅读3分钟

这是我参与2022首次更文挑战的第18天,活动详情查看:2022第一次更文挑战

前言:

编写 JavaScript 代码与编写其他编程语言代码类似,都有专门的工具帮助提高开发效率。JavaScript 开发者可以使用的工具一直在增加,这些工具可以帮助开发者更容易定位问题、优化代码和部署上线。 其中有些工具是在 JavaScript 中使用的,而其他工具则是在浏览器之外使用的。

一、 包管理

JavaScript 项目经常要使用第三方库和资源,以避免代码重复和加速开发。第三方库也称为“包”, 托管在公开代码仓库中。包的形式可以是直接交付给浏览器的资源、与项目一起编译的 JavaScript 库, 或者是项目开发流程中的工具。这些包总在活跃开发和不断修订,有不同的版本。JavaScript 包管理器 可以管理项目依赖的包,涉及获取和安装,以及版本控制。 包管理器提供了命令行界面,用于安装和删除项目依赖。项目的配置通常存储在项目本地的配置文 件中。

1.1 npm

npm,即 Node 包管理器(Node Package Manager),是 Node.js 运行时默认的包管理器。在 npm 库 中发布的第三方包可以指定为项目依赖,并通过命令行本地安装。npm 仓库包含服务端和客户端 JavaScript 库。npm 是为在服务器上使用而设计的,服务器对依赖大小并不敏感。在安装包时,npm 使用嵌套依赖树解析所有项目依赖,每个项目依赖都会安装自己的依赖。这意味着如果项目依赖三个包 A、B 和 C,而这三个包又都依赖不同版本的 D,则 npm 会安装包 D 的三个版本。

1.2 Bower

Bower 与 npm在很多方面相似,包括包安装和管理 CLI,但它专注于管理要提供给客户端的包。Bower 与 npm的一个主要区别是 Bower使用打平的依赖结构。这意味着项目依赖会共享它们依赖的包,用户的任务是解析这些依赖。例如,如果你的项目依赖三个包 A、B和 C,而这三个包又都依赖不同版本的 D,那你就需要找一个同时满足 A、B、C需求的包 D。这是因为打平的依赖结构要求每个包只能安装一个版本。

1.3 JSPM

JSPM 是使用 SystemJS 构建的包管理器,用动态模块加载。这个包管理器本身与 npm 类似,但其包 仓库与注册无关。在 npm、GitHub 或自定义仓库中注册包,都可以使用 JSPM 的 CLI 安装。JSPM 不会在服务器上构建和预编译资源,而是通过 SystemJS 按需将包交付给客户端。与 Bower 类似,JSPM 也使用打平的依赖结构。

1.4 Yarn

Yarn 是 Facebook 开发的定制包管理器,从很多方面看是 npm 的升级版。Yarn 可以通过自己的注册 表访问相同的 npm 包,并且安装方式与 npm 也相同。Yarn 和 npm 的主要区别是提供了加速安装、包缓存、锁文件等功能,且提供了改进了包安全功能。

总结:

本期我们分享的是JavaScript(十八)的工具
我们下期:继续分享JavaScript的模块打包器
原创不易,期待您的点赞关注与转发评论😜😜