TypeScript-Website中pnpm build-site执行逻辑及循环疑问
TypeScript-Website 构建脚本逻辑解析
1. 根目录build脚本不会形成循环调用的原因
根目录的build命令定义为:
pnpm run --filter=!typescriptlang-org build
这里的--filter=!typescriptlang-org是pnpm的工作区过滤规则,意思是排除名为typescriptlang-org的子包,执行剩余所有子包的build脚本。
核心逻辑:当在根目录执行带--filter参数的pnpm run build时,pnpm会遍历匹配过滤规则的子包,执行子包自身的build脚本,而非再次调用根目录的build命令。因此完全不会出现循环调用的问题。
2. pnpm build-site的具体执行流程
build-site命令的定义是:
pnpm run --filter=typescriptlang-org build
这个命令的执行逻辑很明确:
- 仅针对工作区中
typescriptlang-org这一个子包,执行它自身的build脚本 - 不会主动触发其他子包的构建(除非
typescriptlang-org的build脚本内部通过依赖声明或自定义逻辑,间接调用了其他子包的构建步骤,但这属于子包内部的行为,并非build-site命令本身的触发逻辑)
内容的提问来源于stack exchange,提问作者stackbiz
相关产品推荐
相关产品推荐

