Jest + TypeScriptで`SyntaxError: Unexpected token 'export'`が出る
TypeScriptのプロジェクトにts-jest
を使ってJestを導入しようとしたところ、次のようなエラーが出た。
export {};
^^^^^^
SyntaxError: Unexpected token 'export'
よく見ると、ビルド後のJavaScriptファイル(ここではdist
内にあるとする)がテストファイルとして認識されていたことが原因だったので、jest.config.js
に次のような設定を追加した。
module.exports = {
// 追加:
testPathIgnorePatterns: ["<rootDir>/node_modules/", "<rootDir>/dist/"],
// デフォルト:
// testPathIgnorePatterns: ["/node_modules/"],
}
testPathIgnorePatterns
には、ファイルのフルパスに対してマッチされる正規表現を文字列で指定するようになっている。<rootDir>
はプロジェクトのルートディレクトリに置き換えられる。
特定のディレクトリのみからテストファイルを探させたい場合はroots
を使うこともできる。ただし、そのディレクトリが存在しない場合はエラーが出るようなので注意が必要。
module.exports = {
// 追加:
roots: ["<rootDir>/src/", "<rootDir>/tests/"],
// デフォルト:
// roots: ["<rootDir>"],
}