本質的に、JSPM/SystemJS で実行されているアプリで Jest をうまく動作させるには、config.js ファイルに保持されているすべてのマッピングについて「教える」必要があります (または System.config() を呼び出します)。
長い答えは、次のように、JSPM でインストールした依存関係ごとにエントリを作成する必要があるということです。
//jest configuration
moduleNameMapper: {
...
"^redux$": "redux@3.6.0",
...
}
エイリアスごとに、少なくとも 1 つのエントリが必要です。
moduleNameMapper: {
...
"^common\\/(.*)": "<rootDir>/src/common/$1", //for a dir alias
"^actions$": "<rootDir>/src/actions/index", //for a file alias
...
}
nodeNameMapperにこれらのマッピングも必要です。
moduleNameMapper: {
...
"^npm:(.*)": "<rootDir>/jspm_packages/npm/$1",
"^github:(.*)": "<rootDir>/jspm_packages/github/$1",
...
}
最後に、このmoduleDirectories 構成が必要です。
moduleDirectories: ["node_modules", "jspm_packages/npm", "jspm_packages/github"]
すべての依存関係レジストリの 2 つのコピーを保持したくないし、それらが変更されたときにそれらを同期する必要があるため、これは実際には実用的ではありません...
短くてより良い答えは、私のgulp-jest-jspmプラグインを使用することです:)
gulpを使用しない場合でも、getJestConfig()メソッドを使用して、Jest を実行する前に構成を生成できます。