reactjs - Babel-jest 不会在 node_modules 中转译 JSX
问题描述
运行测试时,Babel-jest 不会在node_modules
文件夹中转换 JSX / ES6 不使用其他组件的 React 组件node_modules
正确通过所有测试。
由于https://github.com/facebook/jest/issues/6229尝试添加transformIgnorePatterns
并重命名为babel.config.js
包.json
"devDependencies": {
"@babel/core": "7.1.2",
"@babel/node": "7.0.0",
"@babel/plugin-syntax-dynamic-import": "7.2.0",
"@babel/plugin-transform-modules-commonjs": "^7.4.0",
"@babel/preset-env": "7.2.0",
"@babel/preset-react": "7.0.0",
"babel-eslint": "10.0.1",
"babel-jest": "24.5.0",
"babel-loader": "8.0.4",
"jest": "24.5.0",
"jest-dom": "3.1.3",
.......
},
babel.config.js
module.exports = {
presets: [
'@babel/preset-env',
'@babel/preset-react',
],
plugins: [
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-proposal-class-properties',
'react-hot-loader/babel',
],
env: {
test: {
plugins: ['@babel/plugin-transform-modules-commonjs', '@babel/plugin-proposal-class-properties'],
},
},
};
jest.config.js
module.exports = {
transform: {
'^.+\\.jsx?$': 'babel-jest',
},
moduleNameMapper: {
'\\.(css|less|scss|sss)$': 'identity-obj-proxy',
},
testEnvironment: 'jsdom',
};
解决方案
实际上,下面的链接对我有所帮助。添加transformIgnorePatterns
我的组件node_modules
就足够了,因此请忽略jestjs 文档https://jestjs.io/docs/en/tutorial-react-native#transformignorepatterns-customizationbabel-jest
中的所有文件而不是我的组件图像
推荐阅读
- cassandra - Cassandra 二级索引备份和恢复
- python - 在自定义对象检测中使用 tensorflow-gpu 的错误
- java - 自定义gradle插件+从方法访问返回值?
- caching - 如何使用 AMP 缓存在 amp 页面上制作呼叫按钮
- javascript - 捕获 Javascript 类方法中的所有异常
- python - 在 cloud9 中上传带有熊猫的 csv
- android - 如何在 Android Studio 中覆盖/更新 Jama Matrix 而不会出现任何错误?
- windows - visual studio 2019 显示没有错误,但是驱动没有编译
- r - 根据条件和组创建变量
- c# - 运行应用程序时在 VSCode 中的 ASP.NET Core 应用程序中启动特定 URL