代码之家  ›  专栏  ›  技术社区  ›  Paul Razvan Berg

在使用纱线工作区时,如何强制在相关节点_模块中安装软件包?

  •  0
  • Paul Razvan Berg  · 技术社区  · 7 年前

    我喜欢纱线工作区,但更多时候,我发现自己不得不拿出一个特定的包,因为与外部工具不兼容。

    主要的问题是我没有他们的源代码 相对节点单元 ,但高于几个级别(通常情况下,这对于纱线工作区和节点是正常的)。

    例如, ZeppelinOS 在相对路径中未找到“openzeppelin eth”时,给出以下错误消息:

    找不到佐斯。“openzeppelin eth”的json文件。确保由npm包提供。

    有没有办法强制复制一个包?我读到 --focus ,但这不是我需要的。

    0 回复  |  直到 7 年前
        1
  •  12
  •   Carl G    4 年前

    你要找的是 nohoist https://yarnpkg.com/blog/2018/02/15/nohoist/

    基本上你有两个选择:

    1. 从儿童套餐开始
    "workspaces": {
      "nohoist": ["react-native", "react-native/**"]
    }
    
    1. 从根本上做到这一点
    "workspaces": {
      "packages": ["packages/*"],
      "nohoist": ["**/react-native", "**/react-native/**"]
    }
    

    如果你想分享包裹 xyz 在所有子项目中,然后在根项目中设置,否则在子项目中设置。