我正在参加「掘金·启航计划」
问题来源: 若依、vue-element-admin和其他一些框架有时候在安装node_modules包时,总是会报错,无奈时总会在这三个工具之间做选择重复安装,大多数都会解决问题。
开发者在开发和维护项目时,需要依赖众多的第三方 JavaScript 库或工具包。为了管理这些依赖,各种包管理器应运而生。
npm、yarn 和 cnpm 是最常见的包管理器。
npm和yarn的应用场景有相同之处的。
npm源经常会遇到连接失败、包下载缓慢等问题, cnpm 使用的是国内镜像站,访问时速度非常快,并且不会遇到通常与 npm 相关的网络连接问题。
npm
npm 是 Node.js 的默认包管理器。npm 从它的诞生就广受欢迎,因为它支持各种类型的依赖,并提供了简单易用的 CLI 工具和优秀的社区资源。 随着社区的不断发展,npm 提供了越来越多的功能和功能插件。无论你是新手还是资深开发者,都能轻松上手利用 npm 快速构建代码并部署应用程序。
特点
- 易于使用 - 使用方便,命令行工具非常简单。
- 良好的社区支持 - npm 殿堂级位置,拥有庞大的社区资源和生态系统。
- 高度可定制 - 可以自定义各种类型的安装参数、证书等等。
不足
- 性能问题 - 在一些情况下,安装依赖的过程可能非常缓慢。
- 依赖关系管理 - npm 无法处理某些特殊情况,尤其是对于嵌套依赖项管理较弱。
yarn
yarn 是由 Facebook 和其他几家公司开发的另一个包管理器。yarn 设计之初就是为了解决 npm 的性能和稳定问题。它使用了类似于 Git 的缓存机制,从而提升了安装速度。此外,它还可以安装多个版本的依赖包,并提供依赖包数量和重复性分析功能。
特点
- 兼容性 - 与 npm 完全兼容,无需转换配置文件。
- 性能 - 对于软件包的下载和系统构建都有较快的响应时间。
- 可靠的缓存机制 - 在离线模式下,首次下载完软件包之后,再次安装时速度更快。
- 精确的电子签名和交互特性 - package.json 中的某些字段可以让人们更容易地了解包的信息。
不足
- 必须进一步学习一些新命令和技术概念。
- 某些命令可能在不同版本之间存在差异。
cnpm
cnpm(中国 NPM)是一个 npm 镜,由淘宝团队创建和维护。使用 cnpm 可以将 Node.js 包快速地安装到您的计算机中。具体来说,它使广大中国开发者更好地访问或下载官方的 npm 包,提高了包的下载速度和可靠性,并缩短了开发周期。
特点
- 自动替换为阿里云镜像源。
- 提高了软件包安装的效率,适合在国内的较慢的网络上使用。
- 拥有和 npm 一样的命令行工具和配置文件。开发者可以直接使用 npm 的基础知识进行操作。
不足
- 由于是镜像站增强版,它需要完全依赖 npm 官网,因此不能应对 npm 第三方内容更新较慢的情况。
- cnpm 的版本管理有限,无法自由操纵不同版本的软件包列表。