Public Theta Blog

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>"],
}