Typescript ESM icin Jest calistirmak

typescript, programming, jest, vs code, ESM

Bunu kurmak ve dokumante etmek 2:30 saatimi aldı, gerçekten inanılmaz sıkıcı 😅

💡 Sifirdan npm projesi olusturacaksaniz npm-package-template template’ime bir bakin

package.json yapilandirmasi

  • jest yapilandirma bilgilerini package.json icine ekleyin

  • jest.config.js kullanmaniza gerek yoktur

  • moduleNameMapper ayari ile ESMden gelen zorunlu import.js kuralini duzenliyoruz

  • ^.+\\.ts$ ile de esm kullanimini typecript kodlari icin aktif ediyoruz

// {...
"jest": {
	"preset": "ts-jest",
	"testEnvironment": "node",
	"silent": true,
	"extensionsToTreatAsEsm": [
		".ts"
	],
	"moduleNameMapper": {
		"^(\\.{1,2}/.*)\\.js$": "$1"
	},
	"transform": {
		"^.+\\.ts$": [
			"ts-jest",
			{
				"useESM": true
			}
		]
	}
},
// ...}

VSCode icin launch.json yapilandirmasi

{
	"name": "Jest",
	"type": "node",
	"request": "launch",
	"runtimeArgs": [
		"--experimental-vm-modules", // <<< onemli
		"${workspaceRoot}/node_modules/.bin/jest",
		"${input:exchange}",
		"-t",
		"${input:testName}",
		"--runInBand"
	],
	"cwd": "${workspaceRoot}",
	"stopOnEntry": false,
	"console": "integratedTerminal",
	"internalConsoleOptions": "neverOpen",
	"sourceMaps": true,
	"windows": {
		"program": "${workspaceFolder}/node_modules/jest/bin/jest"
	},
	"skipFiles": ["<node_internals>/**", "**/node_modules/**"]
},

Hata Notlari

SyntaxError: Cannot use import statement outside a module

  • Jest kullanimi icin node ile experimental-vm-modules argumanini kullanmaliyiz aksi halde hatasi aliriz

Eklenti Tavsiyesi

References

Last updated

© 2024 ~ Yunus Emre Ak ~ yEmreAk