".flat不是一个函数,只有在使用jest时才会出现"

15

当我使用jest运行我的测试时,我遇到了上述错误;

Error: Uncaught [TypeError: array.map(...).flat is not a function]

根据那个问题的解决方案,https://github.com/kulshekhar/ts-jest/issues/828

我已经在依赖项中安装了core-js并将其放置在jest.config.js中。

setupFiles: ['core-js'],

我会收到另一个错误;

Error: Uncaught [Error: Not supported]

这只在jest中出现,我的应用和storybook上使用babel和webpack,但没有flat错误。

我的jest.config.js

const PATH = require('./path')

module.exports = {
  setupFilesAfterEnv: ['./rtl.setup.js'],
  moduleFileExtensions: ['js'],
  verbose: true,
  moduleNameMapper: {
    '@components(.*)$': `${PATH.source}/components/$1`
  },
  transform: {
    '^.+\\.js$': 'babel-jest'
  }
}
4个回答

17

1
对于我的 create-react-app 项目,我通过在 setupTests.ts 文件顶部添加 import 'core-js/stable'; 来修复了这个问题。 - Kris Dover
你需要安装依赖项吗?还是它可以在 CRA 中工作? - Sole

5

我安装了core-js (@3.4.1),它对我很有用。 此外,我还需要在我的测试文件的导入顶部添加import 'core-js';

编辑:在未弹出的create-react-app项目中使用它,因此我无法访问webpack文件,并且我没有自定义jest配置(也不是jest-ts)。


4

如果您的 Node 版本过旧,则会出现此错误。尝试将其更新到最新版本。


0

正在深入了解core-js,因为它可以替代@babel/polyfill,而且这个配置方案对我很有效。

[
  "@babel/preset-env",
  {
    "targets": {
      "node": 4
    },
    "useBuiltIns": "usage",
    "corejs": 3
  }
]

并且 core-js@3 作为一个依赖被安装。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接