Yarn从npm而非工作区安装包



我遇到了一个关于纱线工作区的问题,我的情况如下:

我有一个单回购包含:

  • 包含npm程序包的程序包文件夹
  • 包含nodejs应用程序的应用程序文件夹

在我的一个应用程序中,我试图从我的packages文件夹中安装一个在npm中发布的程序包,但当我执行yarn install时,它会继续使用工作区文件夹,不会下载npm程序包,也不会更新yarn锁。

如何告诉yarn不要使用工作区文件夹进行安装,而是从远程下载?我只将工作区用于本地构建。

如果您使用的是yarn berry,它会先在您的工作区中查找包,然后在远程注册表中查找包。可以通过在根目录的.yarnrc.yml文件中设置enableTransparentWorkspaces: false来更改此行为。

// .yarnrc.yml
enableTransparentWorkspaces: false
...

如果您想在设置了上述选项的情况下从工作区获取包,则应在package.json中显式添加workspace:协议作为包名称的前缀。

"my-package": "workspace:^2.0.17",

查看更多信息:

  • https://yarnpkg.com/configuration/yarnrc#enableTransparentWorkspaces
  • https://yarnpkg.com/features/protocols

如果是yarn 2+(berry(,则可以使用npm协议

但是我对有些意见

最新更新