通过 npm 源来限制包管理工具
发布于 1 个月前 作者 vivaxy 522 次浏览 来自 分享

背景

npmyarn 不共享版本锁文件。锁定文件对于维护项目的稳定性是必需的。

我们如何确保开发人员在我们的项目中使用相同的包管理工具?

现有一些方法利用 preinstall 钩子。参见:

但这种做法在项目为 npm 包时不起作用。当发布 npm 包时,npm publish 也将调用 preinstall 钩子。

自定义 npm 源

也许我们可以通过自定义 npm 源来做到这一点。

源代码,请参见 npm-registry-proxy

我们可以将 registry="https://npm-registry-proxy.vivaxy.now.sh/yarn/https%3A%2F%2Fregistry.npmjs.org%2F/" 添加到 .npmrc 中。

结果

在项目 .npmrc 中,我们有 registry="https://npm-registry-proxy.vivaxy.now.sh/yarn/https%3A%2F%2Fregistry.npmjs.org%2F/"

  • 使用 yarn add 时,能够成功安装依赖。
  • 使用 npm i 时,会提示安装错误。

限制包管理工具的功能实现了。但是发布 npm 包时,PUT 请求不会成功转发到目标源,还是不能用在 npm 包的项目中。

回到顶部