我遇到了一个关于纱线工作区的问题,我的情况如下:
我有一个单回购包含:
- 包含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协议
但是我对有些意见