繁体   English   中英

SyntaxError - node_modules/react-native/Libraries/polyfills/error-guard.js:缺少分号。 (14:4) 在 react native 库中运行 jest

[英]SyntaxError - node_modules/react-native/Libraries/polyfills/error-guard.js: Missing semicolon. (14:4) on running jest in react native library

我正在尝试为反应本机库设置玩笑,但出现以下错误

SyntaxError: react-native/Libraries/polyfills/error-guard.js: Missing semicolon. (14:4)

      12 | let _inGuard = 0;
      13 |
    > 14 | type ErrorHandler = (error: mixed, isFatal: boolean) => void;
         |     ^
      15 | type Fn<Args, Return> = (...Args) => Return;

react-native 版本:0.61.5

应用程序.js

import { Dimensions } from 'react-native';

function sum(a, b) {
    return a + b;
}
module.exports = sum;

app.test.js

const sum = require('./app');

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

jest.config.js

module.exports ={
    preset : 'react-native',
    transformIgnorePatterns: [
        '/node_modules/(?!(@react-native|react-native)/).*/'
    ]
}

.babelrc

{
    "presets": ["react-native"]
}

我尝试了各种建议的解决方案,例如添加 transformIgnorePatterns 但无济于事。 有人可以帮我吗?

在我将.babelrc文件更改为babel.config.js后,它对我有用。

在我将.babelrc文件更改为babel.config.js后,它也对我有用

module.exports = {
    presets: ['module:metro-react-native-babel-preset'],
};

package.json

"react": "17.0.2",
"react-native": "0.67.4",
[...]
"@babel/core": "7.18.0",

经过长时间的努力,我终于可以解决这个问题:

正如丹尼尔在上面的答案中所说,我们需要将.babelrc文件更改为babel.config.js。 除此之外,我们还必须遵循以下步骤:

  1. 在 babel.config.js 文件中定义presets: ['module:metro-react-native-babel-preset']
  2. 将以下软件包添加到 package.json 文件: "@testing-library/jest-native": "^4.0.5""babel-plugin-transform-class-properties": "^6.24.1"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM