turbo介绍(翻译)

3,790 阅读3分钟

介绍

Turbo(涡轮增压)是用Rust开发的下一代前端开发的工具链,它包含三个主要部分:

  • Turbo打包:  一个增量打包器 (Webpack的继承者)
  • Turbo仓库:  一个增量打包系统
  • Turbo引擎: 一个底层的增量计算和内存引擎

开始

访问 Turbo 来开启 Turbo打包 and Turbo仓库的旅程

贡献

原文链接CONTRIBUTING.md

Turbo仓库

  1. 安装
# 在OSX系统上
brew install sponge jq protobuf protoc-gen-go protoc-gen-go-grpc golang
# 在根目录
pnpm install
  1. 构建
# 在cli目录构建 `turbo`
make turbo
# 使用 `turbo` 去构建 `turbo` CLI
./turbow.js
  1. 测试
# 在`cli`目录你可以执行
# run smoke tests
make e2e
# run unit tests
make test-go

你可以通过命令go test ./[path/to/package/]跑一个测试,想了解更多可以浏览Go 测试

  1. 调试
go install github.com/go-delve/delve/cmd/dlv@latest

在 VS Code的 "Run and Debug" 标签, 选择 Build Basic来基于基本实例的目标build来调试turbo的启动代码。 这个任务被配置在了 launch.json.

  1. 更新 turbo

你可能需要更新 packages/turbo 来支持一个新的平台。 当你做这个的时候你需要连接模块以便继续工作。 如下的实例, 通过 npm link:

cd ~/repos/vercel/turborepo/packages/turbo
npm link

# Run your build, e.g. `go build ./cmd/turbo` if you're on the platform you're adding.
cd ~/repos/vercel/turborepo/cli
go build ./cmd/turbo

# You can then run the basic example specifying the build asset path.
cd ~/repos/vercel/turborepo/examples/basic
TURBO_BINARY_PATH=~/repos/vercel/turborepo/cli/turbo.exe npm install
TURBO_BINARY_PATH=~/repos/vercel/turborepo/cli/turbo.exe npm link turbo

如果你用的其它包管理器,相应地替换npm

  1. 发布 turbo 到 npm仓库

所有的构建处理是通过手动触发正确的发布 GitHub 工作流.

手动执行release

brew install goreleaser
#  Add `GORELEASER_KEY` env var with the GoReleaser Pro key (ask @turbo-oss to get access to the key)
# Update `version.txt` (do not commit this change to git manually)
cd cli && make publish

Turbo 工具链

turbo-tooling 使用了 Cargo workspaces monorepo. 你可以在crates/ 目录找到多个工作空间.

  1. 运行

为了执行特定的crate, 你可以使用 cargo run -p [CRATE_NAME] 命令.

有运行入口的create如下:

image.png

# example
cargo run -p next-dev
  1. 调试

到入口直接打断点Debug就行

image.png

  1. 测试

安装cargo-nextest (nexte.st/)

同执行一下命令运行

cargo nextest run

为了测试你需要执行 yarn 来安装一些依赖. 查看 Troubleshooting 来找到通用问题的解决方案.

你也可以创建一个小的demo应用来执行测试

cargo run -p node-file-trace -- print demo/index.js
  1. 问题

查看 Troubleshooting.

社区

Turbo的社区地址在这GitHub讨论,你可以在里面问问题,表达你的想法,分享你的项目

想和社区成员交流你可以加入 Turbo Discord

我们的 行为准则适用于所有的社区频道

谁在使用Turbo?

全世界领先的公司在使用Turbo,你可以查看Turbo 案例来了解更多

更新

在Twitter上跟随 @turborepo 来查看更多更新

作者

Turbo仓库

Turbo打包和Turbo引擎

安全

如果你确信你发现一个Turbo的安全漏洞,我们鼓励你去负责任地披露他,而不是提一个公开的issue。

我们将调查所有合法的报道。发电子邮件到security@vercel.com,以披露任何安全漏洞。

vercel.com/security

原文链接

github.com/vercel/turb…