【问题标题】:Should I have to use no-hoist for all packages in a monorepo with react-native-web?我是否必须对带有 react-native-web 的 monorepo 中的所有软件包使用 no-hoist?
【发布时间】:2020-03-23 03:30:15
【问题描述】:

我正在开发一个 SPA,我正在使用 Rails 和 ruby​​ webpacker 实现来提供服务。我将我的客户端文件夹拆分为一个 yarn monorepo,用于我的 webnativecommon 代码,这样我就可以使用 react-native-web 尽可能多地重用。

到目前为止,对于我想要使用的任何库,我都必须使用 nohoist 指令。当我运行 android 开发服务器时,它不能在提升的 node_modules 文件夹中捆绑任何东西,所以我想要使用的任何东西都必须使用 nohoist 告诉它安装在本地 node_modules 文件夹中。

我想知道这些项目是否应该这样设置,这是否正常?我应该使用像 Lerna 这样的东西来管理符号链接和包提升吗?设置时我是否错过了某个步骤或某个库?

【问题讨论】:

    标签: react-native yarnpkg monorepo react-native-web


    【解决方案1】:

    我在单一存储库中使用了 yarn 工作区和 lerna,而符号链接不适用于我们的 react-native 项目。

    我在子包的 package.json(mono-repo 中的 react native 包)中添加了以下内容,以防止提升 react native 包中的任何内容:

    "workspaces": {
      "nohoist": [
        "*",
      ]
    },
    

    我假设这类似于 react-native-web。

    我们尝试了很多其他方法都不起作用,而且总体而言,提升似乎与基于 React Native 的项目不兼容。

    【讨论】:

      猜你喜欢
      • 2017-01-02
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      • 2020-03-18
      • 2013-09-15
      相关资源
      最近更新 更多