Print

深入剖析 npm & yarn 包管理机制


作者: 文章来源:

本文原地址:https://www.mimiwuqi.com/webqianduan/196485.html

目录文章目录
  1. 背景
  2. npm 内部机制和背后的思考
  3. yarn 安装理念以及破解依赖管理困境
  4. npm 与 yarn 对比
  5. [拓展]npm 企业级部署私服原理
  6. 管理项目依赖的小技巧(集思广益…)

深入剖析 npm & yarn 包管理机制 1

实际上,更优雅的方式是使用 npm dedupe 命令达到上述结构。而 yarn 在安装依赖时会自动执行 dedupe 命令。

正是由于上述一些 npm 历史的坑,所以更建议使用 yarn 作为项目协作的包管理工具。当然 npm 发展至今,很多问题已经优化掉,现在 yarn 和 npm 是两款互相看齐、互相获取灵感的依赖管理工具。

npm 与 yarn 对比

这里简单对比 npm v6 和 yarn v1. 这是我们生产开发常用的版本。

npm 和 yarn 作为两款相似的包管理工具,在一些功能实现上它们互相获取灵感。

相同点:

差异:

[拓展]npm 企业级部署私服原理

npm 中的源(registry),其实就是一个查询服务。以 npmjs.org 为例,它的查询服务网址是 https://registry.npmjs.org/,在这个网址后加上依赖的名字,就会得到一个 JSON 对象,里面包含了依赖所有的信息。例如:

我们可以通过 npm config set registry 命令来设置安装源。你知道我们公司为什么要部署私有的 npm 镜像吗?虽然 npm 并没有被屏蔽,但是下载第三方依赖包的速度依然较缓慢,这严重影响 CI/CD 流程或本地开发效率。通常我们认为部署 npm 私服具备以下优点:

  1. 确保高速、稳定的 npm 服务
  2. 确保发布私有模块的安全性
  3. 审核机制可以保障私服上 npm 模块质量和安全

部署企业级私服,能够获得安全、稳定、高速的保障。

管理项目依赖的小技巧(集思广益…)

  1. 推荐使用 yarn 作为团队包管理工具,而不是 npm。尽管在 npm v6 之后的版本趋向稳定和安全,但由于历史原因和团队管理兼容性,仍然是推荐使用 yarn 作为团队统一的包管理工具。
  2. 项目中一定要存在 lockfile 文件,且禁止手动修改,因为这是项目稳定性运行的保障。
  3. 如果 yarn.lock 在代码合并的过程中出现了问题,可以尝试使用 yarn install 解决问题。

以上文章来源于 ELab 团队 ,作者 ELab.zhangqiang

更多 建站教程 请访问 https://www.mimiwuqi.com/webqianduan/