Babel7を使用したプロジェクトでjestテストを実行する際に問題が発生します。 babel6で完全にトランスパイルするために使用されるテスト。また、Babel7を使用したwebpackで完全にコンパイルされますが、トランスパイルエラーのためにjestでテストを実行できません。私は何が間違っているのですか?
react/node_modules/generic-redux-root/index.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){export * from './source/CreateReduxRoot';
^^^^^^
SyntaxError: Unexpected token export
私の冗談の設定
{
"unmockedModulePathPatterns": [
"<rootDir>/node_modules/react",
"<rootDir>/node_modules/react-dom",
"<rootDir>/node_modules/react-addons-test-utils",
"<rootDir>/node_modules/fbjs",
"enzyme"
],
"roots": [
"<rootDir>/__tests__"
],
"transformIgnorePatterns": [
"node_modules/(^generic-)/i", //a module matching this is throwing an error
"node_modules/react-infinite-scroller"
],
"setupFiles": [
"./jestsetup.js"
],
"snapshotSerializers": [
"enzyme-to-json/serializer"
],
"testResultsProcessor": "./jestTrxProcessor",
"verbose": true
}
私の.babelrc
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"ie": 11
},
"useBuiltIns": "usage"
}
],
"@babel/preset-react"
],
"plugins": [
"@babel/plugin-transform-runtime",
"@babel/plugin-syntax-dynamic-import",
"@babel/plugin-syntax-import-meta",
"@babel/plugin-proposal-class-properties",
"@babel/plugin-proposal-json-strings",
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
],
"@babel/plugin-proposal-function-sent",
"@babel/plugin-proposal-export-namespace-from",
"@babel/plugin-proposal-numeric-separator",
"@babel/plugin-proposal-throw-expressions",
"@babel/plugin-proposal-object-rest-spread",
"@babel/plugin-transform-object-assign"
]
}
私は何が間違っているのですか?
これは、Babel7が.babelrc
を自動的にロードしなくなったために発生しています。プロジェクトのルートに配置する必要があるroot config
の新しい概念があり、ファイルには babel.config.js
という名前を付けて、オブジェクトをエクスポートする必要があります。
したがって、従うべきいくつかのステップを与えるために:
.babelrc
の名前をbabel.config.js
に変更し、必ずmodule.exports = {...}
を使用してくださいjest --clearCache
を実行して、Jestの内部キャッシュをクリアします(壁に頭をぶつけるのに数時間かかりました)