【问题标题】:Managing typescript project monorepo with yarn and ts 3.0使用 yarn 和 ts 3.0 管理 typescript 项目 monorepo
【发布时间】:2019-01-16 04:34:56
【问题描述】:

我已经关注 react native monorepo 结构一段时间了

/app
  package.json
/firebase
  /functions
    tsconfig.json
    package.json
/types
  package.json
/ios
/android
tsconfig.json

iosandroid 文件夹是各自的本地代码,所以我们并不真正关心它们,这里仅包含用于不完整的示例。

实际项目有:

app - 应用逻辑

firebase/functions - 后端逻辑

types - 模型和商店的接口

每个都有package.json 文件,其名称属性类似于@MyCompany/app。这是为yarn workspaces 完成的,让我可以轻松地在项目之间导入内容。

到目前为止还不错,现在 typescript 3 出来了,我想看看是否有办法清理它?

目前我有 2 个tsconfig 文件,我相信我可以以某种方式将它们合并为一个?

另外,有没有办法让我定义多个 .d.ts 文件而不是我的 types 文件,并使我的模型和存储接口以某种方式在项目中全局可用?

如果我使用 typescript 3,是否需要保留 yarn 工作区?这些项目没有在任何地方发布,而是部署到不同的目标

【问题讨论】:

    标签: typescript react-native yarnpkg


    【解决方案1】:

    目前我有 2 个 tsconfig 文件,我相信我可以以某种方式将它们合并为一个?

    我相信您不能从单个 tsconfig 文件中指定单独的编译目标,但如果您想降低文件间的重复次数,您可以在项目的根目录中定义一个包含通用配置的主 tsconfig.json并让您的项目特定tsconfig.jsons extend from the master

    有没有办法让我定义多个 .d.ts 文件而不是我的类型文件,并使我的模型和存储接口以某种方式在项目中全局可用?

    是的,您当然可以在任意位置定义任意数量的 .d.ts 文件,并将它们包含在 tsconfig.json 中或使用三斜杠指令临时包含在每个文件中:

    • 如果您想将它们临时包含在每个文件中,您需要使用triple-slash reference directive 并将.d.ts 文件路径作为参数传递。
    • 更简单的方法是通过tsconfig 将它们提供给编译器。如果您使用"files""include" 数组来指定编译器输入,只需将相关的.d.ts 文件添加到列表中。如果您仅使用 "exclude" 数组,请确保不要排除您的 .d.ts 文件。

    您可能希望保留 yarn 工作区,因为 TS 3.0 没有可以替代工作区的工具。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      • 2020-10-24
      • 1970-01-01
      • 2022-11-11
      • 2023-03-09
      • 1970-01-01
      • 2019-01-08
      相关资源
      最近更新 更多