Turborepo/pnpm 工作区:构建我的包和我依赖的每个包



我的涡轮回购单存储库中有三个软件包,topmiddlebottomtop取决于middlemiddle取决于bottom

如果我这样做:

cd bottom
make some edits
cd ../middle
make some edits

我想在该目录(middle)中键入一些内容,它将构建middle依赖的所有内容(即bottom)并middle自己。

我知道我可以cd到项目的根目录并这样做:

turbo run build --filter=middle...

但我想要一个命令(或脚本)知道我在哪个目录中,基本上说"构建所有内容并包括这里">

如果它对任何人有用,我通过.zshrc将其添加到

find-up () {
path=$(pwd)
while [[ "$path" != "" && ! -e "$path/$1" ]]; do
path=${path%/*}
done
echo "$path"
}

bt () {
ROOT_DIR=$(find-up "pnpm-workspace.yaml")
PKG_NAME=$(npm pkg get name | sed -e s#"##g)
(cd $ROOT_DIR && pnpm run build --filter=$PKG_NAME...)
}

现在我可以 cd 到middle并键入bt(代表构建到),它将构建所有内容,包括当前包。 很想知道更好的方法!

根据 TurboRepo 的文档,您只需要在 turbo.json 中的pipeline.build中添加"dependsOn": ["^build"]。 在 monorepo top 文件夹上运行npm run build时,它应根据每个工作区的依赖项按顺序生成。

下面是turbo.json文件的示例。

{
"$schema": "https://turbo.build/schema.json",
"pipeline": {
"build": {
// "A workspace's `build` command depends on its dependencies'
// and devDependencies' `build` commands being completed first"
"dependsOn": ["^build"],
"outputs": [".next/**", "!.next/cache/**"]
}
}

相关内容

  • 没有找到相关文章

最新更新