😐

bun test をtsで使うときには @types/web と tsconfig.json の設定が必要

2023/09/14に公開

結論

これをやればok

  1. bun add -d @types/web
  2. Update tsconfig.json
{
  // ...
  "lib": ["ESNext", "DOM", "DOM.Iterable"],
  "types": ["web", "bun-types"]
}

経緯

pnpm の代わりに bun を使ったら CI/CD で毎回5分半かかってたのが4分ぐらいに速くなって快適になったので、ついでに vitest の代わりに bun test を使うようにしたかった。

import { test, expect } from "vitest" の代わりに
import { test, expect } from "bun:test" にすればいいだけなんだけど、この "bun:test"が型エラーになっちゃう。

そこで tsconfig.json の types に "bun-types" を追加するんだけど、そうすると今度は document とか、各種DOM系の型エラーが出るようになっちゃった。

issue を探すと同様のひとがいっぱいで、ここで解決策をまとめてくださっていた。

https://github.com/oven-sh/bun/issues/463#issuecomment-1636727109

そのとおりやったら、okでした。

感想

vitest で30秒ぐらいかってたのが、bun test にすると 15秒ぐらいになりました。
めっちゃ速くて超快適!

Discussion