Migrate tsconfig (if needed)
pnpm remove @tsconfig/recommended
pnpm add -D @tsconfig/node20
Replace @tsconfig/recommended with @tsconfig/node20 in tsconfig.json.
Migrate to vitest
pnpm remove @types/jest jest ts-jest eslint-plugin-jest
pnpm add -D vitest @vitest/eslint-plugin
rm jest.config.js
perl -i -pne 's/"jest"/"vitest"/' package.json
perl -i -pne "s/^import jest .+/import vitest from '\@vitest\/eslint-plugin'/" eslint.config.js
perl -i -pne "s/jest\.configs\[.+/vitest.configs.recommended,/" eslint.config.js
cat > vitest.config.ts <<EOF
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
clearMocks: true,
},
})
EOF
Tests
Rewrite the tests for vitest.
import { describe, expect, it, test } from 'vitest'
Migrate tsconfig (if needed)
Replace
@tsconfig/recommendedwith@tsconfig/node20in tsconfig.json.Migrate to vitest
Tests
Rewrite the tests for vitest.