I’m deploying a TurboRepo project to Vercel, and I’m facing the following issue:
I have a package I’ll call @repo/gi-data
, I have an app called gen-gi-data-types
, that has a task named generate-files
, which generates some .ts
files for @repo/gi-data
(I don’t/can’t build @repo/gi-data
before this task). I then have a second app called gen-gi-data
with a generate-files
task which dependsOn @repo/gi-data#build
and adds files to @repo/gi-data
. I have another task gen-gi-helper-data#generate-files
that dependsOn @repo/gi-data#build
again, but when I do it, I’m facing issues. Here is my turbo.json
{
"$schema": "https://turbo.build/schema.json",
"ui": "tui",
"tasks": {
"build": { // the default build task
"dependsOn": ["^build"],
"inputs": ["$TURBO_DEFAULT$", ".env*"],
"outputs": [".next/**", "!.next/cache/**", "dist/**"]
},
"@repo/gi-data#build": { // generate types before first compile
"dependsOn": ["gen-gi-data-types#generate-files"]
},
"generate-files": {
"dependsOn": ["^generate-files"]
},
"gen-gi-data-types#generate-files": {
"dependsOn": ["@repo/utils#build"], // can ignore
"outputs": ["../../packages/gi-data/src/generated/excel-bin-output/**"]
},
"gen-gi-data#generate-files": {
"dependsOn": ["gen-gi-data-types#generate-files", "@repo/gi-data#build"], // generate types and wait for initial build before adding more files
"outputs": ["../../packages/gi-data/src/generated/**", "!../../packages/gi-data/src/generated/excel-bin-output/**"]
},
"gen-gi-helper-data#generate-files": {
"dependsOn": ["gen-gi-data#generate-files", "@repo/gi-data#build"],
"outputs": ["../../packages/gi-helper-data/src/builds.ts"]
}
}
}
I understand that dependsOn
tasks are run in parallel which is why I made @repo/gi-data#build
’s dependsOn
the way it is, however even if ran parallel in gen-gi-helper-data#generate-files->dependsOn
, since the contents of @repo/gi-data
have changed shouldn’t it be missing cache and recompiling? But instead it doesn’t recompile and causes me an error.