首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReferenceError:未定义enzyme_1

ReferenceError:未定义enzyme_1
EN

Stack Overflow用户
提问于 2022-11-11 12:20:23
回答 1查看 9关注 0票数 0

测试套件一直运行得很好,直到没有。奇怪的事情只发生在我的机器上,CI工作正常。

我们的项目使用了Typecript,React,Jest和酵素,这就是我运行yarn jest时得到的

代码语言:javascript
复制
Test suite failed to run

ReferenceError: enzyme_1 is not defined

  6 | // (global as any).jQuery = $
  7 |
> 8 | Enzyme.configure({ adapter: new Adapter() })
    | ^
  9 |

  at Object.<anonymous> (spec/javascripts/setupTests.ts:8:1)

我试着清理纱线缓存,再次克隆回购,重新安装节点。我一点也不懂。有什么想法吗?

相关配置文件:

编辑:

此错误发生在节点10.19.0中。安装12.22.2后,错误显示一条新消息:

代码语言:javascript
复制
ReferenceError: Cannot access 'enzyme_1' before initialization
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-14 10:21:06

显然,关于js模块,tsconfigjest.config之间存在一些不一致之处。

在tsconfig中,模块解析设置为Node,模块设置为ES6,而jest配置文件使用预设的ts-jest/presets/js-with-babel.ts文件转换为CommonJS

实际上,如果使用setupTests.js而不是setupTests.ts,则测试运行时不会出现错误。

解决方案A(面向节点):集模块到CommonJS在tsconfig中。

代码语言:javascript
复制
-  "module": "ES6",
+  "module": "CommonJS",

解决方案B(面向web):使用适当的预设,在本例中ts-jest/presets/default-esm.ts文件转换为ES模块。

代码语言:javascript
复制
- preset: 'ts-jest/presets/js-with-babel',
+ preset: 'ts-jest/presets/default-esm',

另外,moduleResolution应该是ESM的NodeNext,而不是Node。请参阅https://www.typescriptlang.org/tsconfig#moduleResolution

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74402417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档