【问题标题】:Jest fails when imports files from repository using import/export default syntax使用导入/导出默认语法从存储库导入文件时,Jest 失败
【发布时间】:2019-10-04 20:32:17
【问题描述】:

我正在使用来自另一个存储库的一些文件,这些文件是用 es6 语法编写的。

当前项目也是使用 es6 语法编写的,但 Babel 已配置为在导入时测试不会失败。 但是当它尝试从该存储库导入文件时失败。 当我将 es6 导入和导出重写为 CommonJS 时,需要语法测试不会失败。

我需要一些额外的 Jest 或 Babel 配置吗?

【问题讨论】:

  • 你有 jest 配置文件吗?我知道通过 karma 测试,有一个 karma.conf.js 文件,它告诉 karma 本质上使用你的 webpack 文件,然后使用 babel。
  • @Brett East 是的,我有 Babel 和 Jest 配置。如果测试不尝试从该存储库导入文件,则 Jest 可以正常工作。
  • 我对 jest 设置了解不多,所以我只能根据我的业力知识尝试和帮助,虽然我确实找到了这个 - jestjs.io/docs/en/getting-started#using-babel - 你安装了这些依赖项吗?
  • @Brett East 是的,一切都已安装和设置
  • 那样的话,我想我也帮不上忙

标签: javascript ecmascript-6 jestjs babeljs commonjs


【解决方案1】:

是的,你只需要对Jest进行一些额外的配置。

默认情况下,Jest 不会转换 node_modules 中的任何内容。

该行为由配置选项transformIgnorePatterns 控制,默认为["/node_modules/"]

如果node_modules 中有需要转换的代码,那么您可以通过在Jest 配置中修改transformIgnorePatterns 将这些模块列入白名单:

"transformIgnorePatterns": [
  "node_modules/(?!(first-module-to-transform|second-module-to-transform)/)"
]

【讨论】:

  • 对我不起作用。据我了解,如果我将transformIgnorePatterns 设置为空数组,它必须工作吗?因为它也不起作用。可能我错过了一些额外的配置。
  • 所以我终于解决了。你的回答帮助了我,但是在我将我的 babel 配置从 .babelrc 移动到 babel.config.js 之后。
猜你喜欢
  • 1970-01-01
  • 2016-06-19
  • 2021-06-02
  • 2022-07-10
  • 2020-10-14
  • 1970-01-01
  • 2021-03-03
  • 1970-01-01
  • 2023-01-12
相关资源
最近更新 更多