【发布时间】:2021-02-21 01:28:04
【问题描述】:
我正在使用 Gatsby,它有很长的子依赖列表,其中一些我不想让 Yarn 安装和执行。理想情况下,我希望能够为每个项目添加一个阻止列表,但我愿意接受其他方式来实现不安装特定软件包的相同目标,即使它会导致依赖它们的直接依赖项出现错误。
需要说明的是,我不只是想安装同一个包的另一个版本,而是完全阻止它被安装。如果我可以用我控制的包替换它,它只是一个垫片,这也是一个不错的解决方案。
我尝试使用 resolutions 并将软件包版本设置为 null,但这似乎没有影响。
【问题讨论】:
-
您是否尝试过对自定义版本的软件包和Offline cache使用分辨率?
-
@HernánAlarcón 可以使用分辨率来指定自定义版本吗?当 deps 安装在其他机器上时,离线缓存会起作用吗?
-
Selective dependency resolutions 页面字面意思是:“让您定义自定义包版本”。 Offline cache 页面还说:“使其适合存储在存储库中,as we actually do in the Yarn repository itself”,所以我想只要它们使用相同的存储库,它就可以在不同的机器上工作。
-
术语似乎在这里混淆了。我的意思是“自定义版本”是指尚未作为 NPM 包的一部分发布的代码,但似乎选择性依赖解决方案文档的意思是指 NPM 上可用的特定版本。离线缓存似乎不是 Yarn v1 的一个特性(至少我在文档中找不到任何关于它的内容)。 Yarn v2 在很大程度上与 React Native 或 Gatsby 等主要 JS 工具不兼容。
-
Yarn classic有有关于离线镜像的页面:classic.yarnpkg.com/en/docs/offline-mirror
标签: javascript npm gatsby yarnpkg