Dan*_*Dan 5 typescript jestjs react-native
我正在尝试运行测试套件,但是出现以下错误:
Couldn't find preset "module:metro-react-native-babel-preset" relative to directory "/Users/dan/Sites/X"
at node_modules/babel-core/lib/transformation/file/options/option-manager.js:293:19
at Array.map (<anonymous>)
at OptionManager.resolvePresets (node_modules/babel-core/lib/transformation/file/options/option-manager.js:275:20)
at OptionManager.mergePresets (node_modules/babel-core/lib/transformation/file/options/option-manager.js:264:10)
at OptionManager.mergeOptions (node_modules/babel-core/lib/transformation/file/options/option-manager.js:249:14)
at OptionManager.init (node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
at File.initOptions (node_modules/babel-core/lib/transformation/file/index.js:212:65)
at File.initOptions (node_modules/ts-jest/dist/util/hacks.js:23:43)
at new File (node_modules/babel-core/lib/transformation/file/index.js:135:24)
at Pipeline.transform (node_modules/babel-core/lib/transformation/pipeline.js:46:16)
Run Code Online (Sandbox Code Playgroud)
这是我的jest配置package.json:
"jest": {
"preset": "react-native",
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"jsx",
"json"
],
"transform": {
"^.+\\.(js)$": "<rootDir>/node_modules/react-native/jest/preprocessor.js",
"\\.(ts|ts)x?$": "ts-jest"
},
"testRegex": "/src/.*.spec.(js|ts|tsx)?$",
"globals": {
"ts-jest": {
"useBabelrc": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果需要,这是内容 babelrc
{
"presets": ["module:metro-react-native-babel-preset"],
"plugins": [
[
"module-resolver",
{
"alias": {
"~": "./src"
}
}
]
]
}
Run Code Online (Sandbox Code Playgroud)
在撰写本文时,此问题仍未解决。
用户似乎对修复的结果好坏参半,但这两个对我有用:
只需重命名.babelrc为.babelrc.js或babel.config.js。
不要忘记添加module.exports = 到文件的开头。
这解决了我的笑话问题,但为我破坏了其他 eslint 插件。
对于选项 2,我认为它可以通过在所有 javascript 文件上手动调用 react-native 预处理器来解决该问题。
transform: { '^.+\\.js$': '<rootDir>/node_modules/react-native/jest/preprocessor.js' }
Run Code Online (Sandbox Code Playgroud)
如果您没有单独的 Jest 配置文件,您可以将其添加到您的 package.json 中,例如...
{
"jest": {
"transform": {
"^.+\\.js$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1442 次 |
| 最近记录: |