开玩笑在 Expo 上运行时无法识别 .jsx 文件
Posted
技术标签:
【中文标题】开玩笑在 Expo 上运行时无法识别 .jsx 文件【英文标题】:Jest not recognizing .jsx files when running on Expo 【发布时间】:2021-12-24 10:18:29 【问题描述】:在我的 Expo 程序中,我无法在 .jsx 文件上运行它的测试套件。
我的 babel.config.js:
module.exports = function (api)
api.cache(true);
return
presets: ['babel-preset-expo'],
;
;
我的 package.json:
"main": "node_modules/expo/AppEntry.js",
"scripts":
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject",
"test": "jest --watchAll --no-cache"
,
"jest":
"preset": "jest-expo",
"transformIgnorePatterns": [
"node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg)"
],
"collectCoverage": true,
"collectCoverageFrom": [
"**/*.js,jsx",
"!**/coverage/**",
"!**/node_modules/**",
"!**/babel.config.js",
"!**/jest.setup.js"
]
,
"dependencies":
"@babel/preset-env": "^7.16.0",
"@mantine/hooks": "^3.1.7",
"axios": "^0.24.0",
"expo": "~43.0.0",
"expo-status-bar": "~1.1.0",
"react": "17.0.1",
"react-dom": "17.0.1",
"react-native": "0.64.2",
"react-native-material-textfield": "^0.16.1",
"react-native-web": "0.17.1",
"styled-components": "^5.3.3"
,
"devDependencies":
"@babel/core": "^7.16.0",
"@testing-library/react": "^12.1.2",
"babel-jest": "^27.3.1",
"babel-preset-react-native": "^4.0.1",
"jest": "^27.3.1",
"jest-expo": "^43.0.1",
"prettier": "2.4.1",
"react-test-renderer": "^17.0.2"
,
"private": true
我也尝试将@babel/preset-react
添加到presets
,但错误消息更改为以下内容:
[BABEL]: Cannot find module '@babel/core'
我没有 webpack.config.js 或 jest.config.js。
如果有人对如何解决此问题有任何想法,我将不胜感激。
谢谢!
编辑:我已将“@babel/preset-react”添加到我的 babel.config.js 文件中,现在我从开玩笑中得到一个错误,说“将 @babel/preset-react”添加到“您的 Babel 配置的预设部分以启用转换。我更新的 babel.config.js:
module.exports = function (api)
api.cache(true);
return
presets: ['babel-preset-expo', '@babel/preset-react'],
plugins: ['@babel/plugin-syntax-jsx']
;
;
【问题讨论】:
【参考方案1】:所以我重新安装了所有依赖项,它似乎正在工作....不确定问题是什么,但似乎我删除或破坏了一个依赖项文件。
【讨论】:
以上是关于开玩笑在 Expo 上运行时无法识别 .jsx 文件的主要内容,如果未能解决你的问题,请参考以下文章
Android设备上的Expo App某些onPress()未触发
expo for ios - '启动设备时无法确定运行时捆绑包