繁体   English   中英

如何使用 TurboRepo 重建依赖于已更改 package(本地)的应用程序

[英]How to use TurboRepo to rebuild apps that rely on a changed package (local)

我目前正在将TurboRepo与纱线工作区一起设置,并且每当它依赖的本地包之一发生更改时,我都无法让它重建我们的主应用程序。

这是我的文件结构的示例:

├── apps                   
│   └── web
├── packages              
│   ├── assets                 
│   ├── config                 
│   ├── design-system          
│   ├── hooks                  
│   └── utils                  

这是我的 turbo.json:

{
  "$schema": "https://turborepo.org/schema.json",
  "baseBranch": "origin/main",
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": [".sst/**", ".build/**", ".expo/**"]
    }
  }
}

我只想在 git 中发生更改时重建包/应用程序,所以我使用--filter=[origin/main] I made a small change to the hooks package and expected it to need to rebuild hooks , hooks dependencies, and web (because web has hooks as a dependency in its package.json). 但是,它只尝试重建hooks和钩子依赖项。

为了测试,我正在试验以下命令: yarn turbo run build --filter=[origin/main] --dry-run

这将打印出以下 output:

@hlp/config#build
  Task          = build
  Package       = @hlp/config
  Hash          = 118d81f38208c721
  Directory     = packages\config
  Command       = <NONEXISTENT>
  Outputs       = .sst/**, .build/**, .expo/**
  Log File      = packages\config\.turbo\turbo-build.log
  Dependencies  =
  Dependendents = @hlp/hooks#build, @hlp/utils#build
@hlp/utils#build
  Task          = build
  Package       = @hlp/utils
  Hash          = 0c879c46fe4a9144
  Directory     = packages\utils
  Command       = <NONEXISTENT>
  Outputs       = .sst/**, .build/**, .expo/**
  Log File      = packages\utils\.turbo\turbo-build.log
  Dependencies  = @hlp/config#build
  Dependendents = @hlp/hooks#build
@hlp/hooks#build
  Task          = build
  Package       = @hlp/hooks
  Hash          = 4be940dedd5cc599
  Directory     = packages\hooks
  Command       = <NONEXISTENT>
  Outputs       = .sst/**, .build/**, .expo/**
  Log File      = packages\hooks\.turbo\turbo-build.log
  Dependencies  = @hlp/utils#build, @hlp/config#build
  Dependendents =

如您所见,它不会尝试重建web 有什么方法可以触发web重建,因为它的依赖关系发生了变化?

如文档( https://turborepo.org/docs/core-concepts/filtering )中所述,您应该能够通过在查询前使用...前缀来包含匹配包的依赖项(例如--filter=...[origin/main]

# Build everything that depends on changes in branch 'my-feature'
turbo run build --filter=...[origin/my-feature]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM