繁体   English   中英

开玩笑:@babel 模块的“松散”模式配置必须相同

[英]Jest: 'loose' mode configuration must be the same for @babel modules

在 React Native 0.70.1 项目及其样板代码上的 Jest 测试失败(在 react-native 初始化之后,仅显示 React Native 徽标的页面)。 测试的目的是使用 React Native 0.70.1/Jest 29 测试 jest env 设置。这是App.test.js

/**
 * @format
 */

    import 'react-native';
    import React from 'react';
    import App from '../App';
    
    // Note: test renderer must be required after react-native.
    import renderer from 'react-test-renderer';
    
    it('renders correctly', () => {
      renderer.create(<App />);
    });

yarn jest错误是:

Error: /Users/macair/Documents/code/js/xyz_app6/node_modules/jest-runner/build/index.js: 'loose' mode configuration must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled).
    at enableFeature (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/helper-create-class-features-plugin/lib/features.js:51:13)
    at PluginPass.pre (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/helper-create-class-features-plugin/lib/index.js:82:35)
    at transformFile (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/transformation/index.js:97:27)
    at transformFile.next (<anonymous>)
    at run (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/transformation/index.js:35:12)
    at run.next (<anonymous>)
    at transform (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/transform.js:29:41)
    at transform.next (<anonymous>)
    at evaluateSync (/Users/macair/Documents/code/js/xyz_app6/node_modules/gensync/index.js:251:28)
    at sync (/Users/macair/Documents/code/js/xyz_app6/node_modules/gensync/index.js:89:14)
    at stopHiding - secret - don't use this - v1 (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js:50:12)
    at transformSync (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/transform.js:56:76)
    at Object.process (/Users/macair/Documents/code/js/xyz_app6/node_modules/babel-jest/build/index.js:309:57)
    at ScriptTransformer.transformSource (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/transform/build/ScriptTransformer.js:615:31)
    at revertHook.exts (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/transform/build/ScriptTransformer.js:863:18)
    at Module._compile (/Users/macair/Documents/code/js/xyz_app6/node_modules/pirates/lib/index.js:130:29)
    at Module._extensions..js (node:internal/modules/cjs/loader:1174:10)
    at Object.newLoader (/Users/macair/Documents/code/js/xyz_app6/node_modules/pirates/lib/index.js:141:7)
    at Module.load (node:internal/modules/cjs/loader:998:32)
    at Module._load (node:internal/modules/cjs/loader:839:12)
    at Module.require (node:internal/modules/cjs/loader:1022:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at requireOrImportModule (/Users/macair/Documents/code/js/xyz_app6/node_modules/jest-util/build/requireOrImportModule.js:53:28)
    at ScriptTransformer.requireAndTranspileModule (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/transform/build/ScriptTransformer.js:887:66)
    at /Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/TestScheduler.js:269:46
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Promise.all (index 0)
    at async TestScheduler.scheduleTests (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/TestScheduler.js:261:7)
    at async runJest (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/runJest.js:405:19)
    at async _run10000 (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/cli/index.js:386:7)
    at async runCLI (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/cli/index.js:237:3)
    at async Object.run (/Users/macair/Documents/code/js/xyz_app6/node_modules/jest-cli/build/cli/index.js:155:37)
error Command failed with exit code 1.

但是,应用程序中不存在 @babel/plugin-proposal-class-properties 和 @babel/plugin-proposal-private-property-in-object。 这是babel.config.js

module.exports = {
  presets: ['module:metro-react-native-babel-preset'],
  "plugins": ["@babel/plugin-proposal-private-methods"]  //added for jest
};

这是 package.json 的部分:

  "devDependencies": {
    "@babel/core": "^7.19.1",
    "@babel/plugin-proposal-private-methods": "^7.18.6",
    "@babel/plugin-transform-flow-strip-types": "^7.19.0",
    "@babel/runtime": "^7.19.0",
    "@react-native-community/eslint-config": "^3.1.0",
    "@testing-library/react-native": "^11.1.0",
    "babel-jest": "^29.0.3",
    "eslint": "^8.23.1",
    "jest": "^29.0.3",
    "metro-react-native-babel-preset": "^0.72.1",
    "react-test-renderer": "18.1.0"
  },
  "jest": {
    "preset": "react-native",
    "cacheDirectory": "./cache",
    "setupFiles": [
      "<rootDir>/jest.setup.js"
    ],
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js",
      "jsx",
      "json",
      "node"
    ],
    "transform": {
      "\\.[jt]sx?$": "babel-jest"
    },
    "transformIgnorePatterns": []
    
  }

开玩笑的配置中缺少什么? 非常感谢。

暂无
暂无

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

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