多语言支持
Turborepo 基于 JavaScript 生态系统的约定来查找要执行的脚本和任务,但它并不关心这些脚本的具体内容。 遵循在 JavaScript 工作区中指定包的指南,你可以向 Turborepo 添加任何其他语言或工具链。
例如,你的存储库的 ./cli
目录中可能有一个 Rust 项目。要将此目录作为包添加到 JavaScript 包管理器的工作区,请将该目录添加到工作区定义中
然后,在目录中添加一个 package.json
文件
现在,当你使用 turbo build
时,./cli/package.json
中的 "build"
脚本将包含在 turbo
运行的任务中。
缓存构建产物
确保使用 turbo.json
中的outputs 键缓存构建的输出。对于使用 cargo 编译的 Rust CLI,将在 target/release
目录中创建一个发布版本,我们可以使用以下方法缓存它
创建依赖关系
由于该目录现在是包管理器工作区的一部分,因此你可以像对 JavaScript 包一样创建依赖关系。
例如,如果你想确保在构建 web
应用程序之前构建上面的 rust-cli
“包”,请将其安装到 web
应用程序的依赖项中
给定一个包含 build
任务的 turbo.json
,如下所示
turbo build
将首先创建 Rust CLI 的工件,然后构建 web
应用程序。
这有帮助吗?