Jest 和 Create-react-app:不能在模块外使用 import 语句
Jest and Create-react-app: Cannot use import statement outside a module
我有一个 React Native 应用程序,其中一些文件包含一些调用特定端点的方法。当我尝试 运行 Jest
时,在导入的本地文件中出现错误。
我有下一个package.json
:
{
"name": "appName",
"version": "1.0.0",
"description": "some description",
"main": "index.js",
"scripts": {
"test": "jest"
},
"author": "",
"license": "ISC",
"dependencies": {},
"devDependencies": {
"@babel/core": "^7.14.2",
"@react-native-community/async-storage": "^1.12.1",
"@react-native-community/netinfo": "^6.0.0",
"isomorphic-fetch": "^3.0.0",
"jest": "^26.6.3",
"jest-fetch-mock": "^3.0.3"
},
"jest": {
"automock": false,
"setupFiles": [
"./jest.setup.js"
]
}
}
jest.setup.js
文件如下:
import mockRNCNetInfo from '@react-native-community/netinfo/jest/netinfo-mock.js'
jest.mock('@react-native-community/netinfo', () => mockRNCNetInfo)
暂且将此内容注释掉,否则会抛出和图片一样的错误。
我试图在另一个项目中测试相同的东西,其中这个 @react-native-community/netinfo
包没有保存在 devDependencies
中,而是保存在 dependencies
中并且它有效但我不确定这是否是问题所在。在这个特定的项目中我不能让这个 package
作为 dependency
,它应该在 devDependencies
.
我发现了很多这方面的问题,但其中 none 个问题都解决了这个问题,我不知道该怎么办了。感谢您的宝贵时间!
我在互联网上找到了这个答案,它对我有一些小的附加组件,但我会 post 它可能会在将来帮助某人:
- 安装
babel-jest
、babel-preset-env
、@babel/runtime
和 react
(最后一个可能只有在某些其他软件包需要时才可能是必需的)
- 在
root directory
中创建 .babelrc
文件并添加:
{
"env": {
"test": {
"plugins": ["transform-es2015-modules-commonjs"]
}
}
}
- 运行 您的代码应该可以使用了
我有一个 React Native 应用程序,其中一些文件包含一些调用特定端点的方法。当我尝试 运行 Jest
时,在导入的本地文件中出现错误。
我有下一个package.json
:
{
"name": "appName",
"version": "1.0.0",
"description": "some description",
"main": "index.js",
"scripts": {
"test": "jest"
},
"author": "",
"license": "ISC",
"dependencies": {},
"devDependencies": {
"@babel/core": "^7.14.2",
"@react-native-community/async-storage": "^1.12.1",
"@react-native-community/netinfo": "^6.0.0",
"isomorphic-fetch": "^3.0.0",
"jest": "^26.6.3",
"jest-fetch-mock": "^3.0.3"
},
"jest": {
"automock": false,
"setupFiles": [
"./jest.setup.js"
]
}
}
jest.setup.js
文件如下:
import mockRNCNetInfo from '@react-native-community/netinfo/jest/netinfo-mock.js'
jest.mock('@react-native-community/netinfo', () => mockRNCNetInfo)
暂且将此内容注释掉,否则会抛出和图片一样的错误。
我试图在另一个项目中测试相同的东西,其中这个 @react-native-community/netinfo
包没有保存在 devDependencies
中,而是保存在 dependencies
中并且它有效但我不确定这是否是问题所在。在这个特定的项目中我不能让这个 package
作为 dependency
,它应该在 devDependencies
.
我发现了很多这方面的问题,但其中 none 个问题都解决了这个问题,我不知道该怎么办了。感谢您的宝贵时间!
我在互联网上找到了这个答案,它对我有一些小的附加组件,但我会 post 它可能会在将来帮助某人:
- 安装
babel-jest
、babel-preset-env
、@babel/runtime
和react
(最后一个可能只有在某些其他软件包需要时才可能是必需的) - 在
root directory
中创建.babelrc
文件并添加:
{ "env": { "test": { "plugins": ["transform-es2015-modules-commonjs"] } } }
- 运行 您的代码应该可以使用了