我喜欢纱线工作区,但由于与外部工具不兼容,我常常不得不抽出特定的包装。
主要问题是,我的源代码不在相对的node_modules 中,而是上面的几层(通常对于纱线工作区和节点而言是正常的)。
例如,当在相对路径中找不到“ openzeppelin-eth”时,ZeppelinOS会给出以下错误消息:
找不到'openzeppelin-eth'的zos.json文件。确保它由npm软件包提供。
有没有办法强制复制包裹?我读到有关--focus的信息,但这不是我所需要的。
答案 0 :(得分:4)
您要寻找的被称为nohoist
https://yarnpkg.com/blog/2018/02/15/nohoist/
基本上,您有两个选择
"workspaces": {
"nohoist": ["react-native", "react-native/**"]
}
"workspaces": {
"packages": ["packages/*"],
"nohoist": ["**/react-native", "**/react-native/**"]
}
如果您不想为所有子项目共享软件包xyz
,则将其设置为root,否则将其设置为子项目。