shwld
Invalid Date

@swc/jestを使ってjestを高速化する

swcはrust製のコンパイラで、TSの型チェックもなく非常に高速である。これを使うことでjestが早くなるらしいのでやってみた。

インストール

bash
yarn add -D @swc/core @swc/jest

.swcrcというファイルを作る。あまり書き方に関する情報がない。割とカンで公式かどっかから持ってきたのをそのまま貼ったレベル。

ちゃんと各項目精査したほうが良さそう...

json
.swcrc
{
  "jsc": {
    "target": "es5",
    "parser": {
      "syntax": "typescript",
      "tsx": true,
      "decorators": false,
      "dynamicImport": false
    },
    "transform": {
      "react": {
        "pragma": "React.createElement",
        "pragmaFrag": "React.Fragment",
        "throwIfNamespace": true,
        "development": false,
        "useBuiltins": false
      },
      "hidden": {
        "jest": true
      }
    }
  },
  "module": {
    "type": "commonjs",
    "strict": false,
    "strictMode": true,
    "lazy": false,
    "noInterop": false
  }
}

jest.config.jsに@swcを使う指定を追加

js
jest.config.js
module.exports = {
  preset: 'ts-jest', // そのままで良い
  setupFilesAfterEnv: ['<rootDir>/jest/setupTests.js'], // <- tsだった場合jsに変換する
  transform: {
    '^.+\\.(ts|tsx)$': '@swc/jest', // <- これを変える
  },
  ...
}

計測はしてないけどバッチリ体感できるくらい早い

Next.jsでもswcによるコンパイルが使えるようになり始めているみたいなので、そっちも気になる。

書いた人

shwld
shwldLV: 106
ATK32620
DEF30929
SPD38392
HIT95
AVD19
CRI20

他の投稿を見る

もっと見る