Invalid Date
@swc/jestを使ってjestを高速化する
swcはrust製のコンパイラで、TSの型チェックもなく非常に高速である。これを使うことでjestが早くなるらしいのでやってみた。
インストール
bashyarn 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を使う指定を追加
jsjest.config.js
module.exports = {
preset: 'ts-jest', // そのままで良い
setupFilesAfterEnv: ['<rootDir>/jest/setupTests.js'], // <- tsだった場合jsに変換する
transform: {
'^.+\\.(ts|tsx)$': '@swc/jest', // <- これを変える
},
...
}
計測はしてないけどバッチリ体感できるくらい早い
Next.jsでもswcによるコンパイルが使えるようになり始めているみたいなので、そっちも気になる。