👻

Turborepoの内部パッケージがmonorepo内で認識されない

2024/11/21に公開

Turborepoのドキュメントを写経していて詰まったのでメモ。

発生した事象

TurborepoのInternal Packagesというページのサンプルに沿って、内部パッケージ「math」を追加してみたところ、apps/web/package.jsonに依存先として記述してもmathパッケージが認識されず、yarn installに失敗する。

~/work/prac/turborepo/packages/math (main *%)
$ yarn 
yarn install v1.22.22
warning package.json: No license field
warning Missing version in workspace at "/Users/srkw/work/prac/turborepo/packages/math", ignoring.
[1/5] 🔍  Validating package.json...
warning Missing version in workspace at "/Users/srkw/work/prac/turborepo/packages/math", ignoring.
[2/5] 🔍  Resolving packages...
error Couldn't find package "@repo/math@*" required by "web@0.1.0" on the "npm" registry.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

turboのバージョンは2.3.0

回避方法

mathパッケージのpackage.jsonにversionを記入すると内部パッケージが正しく認識され、yarnコマンドが通るようになる。

{
  "name": "@repo/math",
+ "version": "0.1.0",
  "type": "module",
  "scripts": {
    "dev": "tsc --watch",
    "build": "tsc"
  },
  "exports": {
    "./add": {
      "types": "./src/add.ts",
      "default": "./dist/add.js"
    }
  },
  "devDependencies": {
    "@repo/typescript-config": "*",
    "typescript": "latest"
  }
}

npmレジストリを経由しない内部パッケージでも、versionを指定する必要がある、という感じ?
よく分かっておらず恐縮ですが、詰まった方のヒントになれば幸いです。
また、何か気になる点がある方がいたらコメントを頂けるとありがたいです。

Discussion