GitHub 的 npm 产品经理 Edward Thomson 在最近举行的 GitHub Satellite 2020 大会上解释了 npm 被 GitHub 收购后对 JavaScript 开发者的影响,以及如何在开源和非开源的工作中充分发挥 GitHub 的作用。
GitHub 在今年 4 月完成了对 npm 的收购。GitHub 随后表示计划从三个方面发展 npm:基础设施、开发者体验和社区。Thomson 在讲话中详细介绍了 GitHub 目前为改进 npm CLI 和 npm 注册表所采取的行动。
Thomson 对 CLI 方面所做的努力发表了评论:
现在,团队正在开发 npm v7,CLI 的下一个版本。这实际上是一个非常大的转变。CLI 团队正在进行一些重大的重构,对正确性和性能进行了改进。他们正在让软件变得更安全,并试图提高与生态系统中其他工具的兼容性。
npm CLI 团队正在改进 npm audit 的体验,Thomson 通过展示 npm v6 和 npm v7 之间不同的 CLI 输出来演示新的功能。在 npm v6 中,minimist 包的漏洞以表格形式显示出来。将 minimist 作为依赖项的包都出现了这个问题。在 npm v7 中,有关安全漏洞以及如何修复它们的信息以更简洁的形式显示出来。minimist 的安全问题只显示一次。npm v7 意识到 minimist 是导致问题的唯一包,所以会提示用户运行 npm audit fix 来自动修复问题。
npm 6 可能会推荐通过依赖更新来修复问题——一个包含重大变化的更新,可能需要开发人员重构他们的代码,但 npm 7 可能会尝试通过降级包版本来自动修复问题。此外,npm v7 可以更好地与 yarn(及 yarn 锁文件)共存。Thomson 解释说:
我们希望确保这两个工具之间能够尽可能完美地兼容。这两个命令行接口(yarn 和 npm)曾经是相互独立的,但是在 npm 7 中,我们将看到它们在兼容性方面的巨大改进。
npm v7 也将支持工作区特性,这是一个在大型项目中很流行的特性。npm v7 将至少支持 yarn 工作区特性,并为 v8 中的更高级的工作区特性奠定基础。有了工作区特性,开发人员只需要运行一次安装脚本(例如,yarn install)就可以配置多个包,并一次性安装所有包。多个项目可以使用单个锁文件而不是使用多个不同的锁文件,这样就可以减少冲突,评审起来也更容易。
至于 npm 注册中心,GitHub 尝试更好地整合 npm 和 GitHub,加强 npm 的基础设施,让 npm 的付费客户转到 GitHub。Thomson 解释说:
npm 有几种私人托管包付费计划,我们准备让付费的 npm 客户转到 GitHub。这样我们就可以让每种代码库发挥它们各自的优势,GitHub 成为托管私有包的一个很好的解决方案,而 npm 继续专注于成为开源包的一个很好的公共注册中心。
Thomson 邀请开发者针对 GitHub 的这些举措提供反馈。开发者可以查看npm RFC和npm博客。Thomson 的演讲视频可以在网上找到,其中包含了 GitHub 针对 npm 的举措的更多信息。
原文 l 链接:
The JavaScript Coder’s Guide to Getting More from GitHub and Npm - GitHub Satellite 2020
评论