gpt4 book ai didi

javascript - 开 Jest - 语法错误 : React Navigation - Unexpected token export for [node_modules\react-navigation\src\react-navigation. js:1]

转载 作者:行者123 更新时间:2023-12-03 07:08:26 25 4
gpt4 key购买 nike

开 Jest 获取错误:-

主要错误来自 react 导航。 jest react-natigation node_modules 文件夹出错。

错误:node_modules\react-navigation\src\react-navigation.js:1错误详情:({"Object.":function(module,exports,require,__dirname,__filename,global,jest){export * from '@react-navigation/core'; ^^^^^^

语法错误:意外的 token 导出

控制台完全错误

screens/__test__/WelcomeScreen.test.js
Test suite failed to run

Jest encountered an unexpected token

This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.

By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".

Here's what you can do:
• To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
• If you need a custom transformation specify a "transform" option in your config.
• If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

You'll find more details and examples of these config options in the docs:
https://jestjs.io/docs/en/configuration.html

Details:

D:\sahil-git\ToDoList-ReactNative\node_modules\react-navigation\src\react-navigation.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){export * from '@react-navigation/core';
^^^^^^

SyntaxError: Unexpected token export



at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:537:17)
at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:579:25)
at Object.<anonymous> (screens/WelcomeScreen.js:287:25)

jest.config.json

{
"preset": "react-native",
"collectCoverage": true,
"moduleDirectories": [
"node_modules",
"src"
],
"transform": {
"^.+\\.js$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
},
"setupFiles": [
"<rootDir>/jest/setup.js",
"./node_modules/react-native-gesture-handler/jestSetup.js"
],
"transformIgnorePatterns": [
"node_modules/(?!(jest-)?react-native)"
],
"coveragePathIgnorePatterns": [
"/node_modules/",
"/jest"
]
}

WelcomeScreen.js

import React from 'react';
import { StyleSheet, View, Text } from 'react-native';
import MainButton from '../components/MainButton';
import { withNavigation } from 'react-navigation'

export const WelcomeScreen = (props) => {
const goToMainScreen = () => {
props.navigation.navigate({routeName: 'Main'});
}

return (
<View style={styles.screen}>
<Text style={styles.title}>Welcome</Text>
<View style={styles.buttonContainer}>
<MainButton onPress={goToMainScreen} style={styles.button}>
NEXT
</MainButton>
</View>
</View>
);
}

const styles = StyleSheet.create({
screen: {
flex: 1,
padding: 10,
alignItems: 'center',
justifyContent: 'center'
},
title: {
fontFamily: 'lato',
fontWeight: '100',
fontSize: 48
},
buttonContainer: {
marginTop: 300,
borderColor: 'black',
borderRadius: 25,
flexDirection: "row"
},
button: {
alignSelf: "center",
width: "50%"
}
});

export default withNavigation(WelcomeScreen);

WelcomeScreen.test.js

import React from 'react';
import { shallow } from 'enzyme';
import { WelcomeScreen } from '../WelcomeScreen';
import MainButton from '../../components/MainButton'

describe('WelcomeScreen', () => {
const navigation = {
navigate: jest.fn()
}
const component = shallow (
<WelcomeScreen navigation={navigation} />
);

it('should render properly', () => {
expect(component).toMatchSnapshot();
})
});

最佳答案

原因是 react-navigation 的代码没有被转换成你的 jest 配置可以执行的 Javascript 版本。

您可以尝试在您的 jest 配置中更改以下行:

"transformIgnorePatterns": [
"node_modules/(?!(jest-)?react-native)",
"node_modules/?!(react-navigation)"
]

关于javascript - 开 Jest - 语法错误 : React Navigation - Unexpected token export for [node_modules\react-navigation\src\react-navigation. js:1],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59801033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com