⬆️

Turborepo のバージョンを 1.x から 2.x へアップデートする

2024/12/23に公開

パーティーハード株式会社でフロントエンドエンジニアをしているほたと申します。
弊社では Web アプリケーションの開発に Turborepo を利用しています。今回は turbo を先月(2024/06)にリリースされたバージョン 2.0 へアップデートする方法を見ていきたいと思います。
 2.0 では破壊的変更がいくつかあるので公式情報も忘れずに確認しておきましょう。
https://turbo.build/blog/turbo-2-0#breaking-changes

最新の turbo をインストール

まずはお使いのパッケージマネージャーで最新の turbo をインストールします。

# npm
npm install turbo@latest --save-dev
# yarn
yarn add turbo@latest --save-dev
# pnpm
pnpm add turbo@latest --save-dev -w

公式のアップグレーディングガイド通りに進める

次に公式が公開しているアップグレーディングガイドの手順に従い操作を行います。

https://turbo.build/repo/docs/crafting-your-repository/upgrading#upgrading-to-20

1. turbo.json の更新

@turbo/codemod パッケージを利用して turbo.json をバージョン 2.0 に対応したフォーマットに変換します。

# npm
npx @turbo/codemod migrate
# yarn
yarn dlx @turbo/codemod migrate
# pnpm
pnpm dlx @turbo/codemod migrate

事前にコミットしていないファイルがあると下記のようなメッセージが表示されるので忘れずにコミットしておきましょう。

Thank you for using @turbo/codemod!

But before we continue, please stash or commit your git changes.

You may use the --force flag to override this safety check.

2. packageManager フィールドを package.json へ設定

Turborepo 2.0 ではプロジェクトルートの package.json でプロジェクトで利用するパッケージマネージャーの種類とバージョンを指定する packageManager フィールドの設定が必須になっています。
私達のプロジェクトでは pnpm の 9.6.0 を利用しているため以下のように設定しました。

package.json(プロジェクトルート)
{
  ...
  "packageManager": "pnpm@9.6.0"
  ...
}

3. turbo run コマンドの更新

Turborepo 2.0 では turbo run コマンドの動作が改善・変更されているようです。私達のプロジェクトでは特に更新作業は必要ありませんでしたがケースによっては必要になるそうなので公式ガイドを確認しておきましょう。

https://turbo.build/repo/docs/crafting-your-repository/upgrading#update-turbojson

最後に

今回は Turborepo を 2.0 へアップデートする手順を紹介しました。2.0 では新しいターミナル UI やタスクのウォッチモードなどが実装されているので公式ドキュメントを確認しておきましょう。

快適な Turborepo ライフを!

パーティーハード株式会社

Discussion