gpt4 book ai didi

ecmascript-6 - 在 Jest 中运行循环 ES6 导入时为 "Maximum call stack size exceeded"

转载 作者:行者123 更新时间:2023-12-05 06:52:38 26 4
gpt4 key购买 nike

在为一些 ES6 模块编写测试套件时,我发现 Jest v26.6 在尝试进行一些循环导入时会出错。

问题可以简化为:

A类.mjs

import {B} from './ClassB.mjs';

class A {
constructor()
{
//...
}
}

类B.mjs

import {A} from './ClassA.mjs';

class B extends A {
constructor()
{
super();

// ...
}
}

循环测试.js

import {B} from "./ClassB.mjs";

describe('Cyclic', () => {
test('Cyclic', () => {
// ...
});
});

Jest 在其源的不同位置退出并显示“超出最大调用堆栈大小”错误消息,具体取决于测试的导入。

是否有任何解决方案,任何已知的解决方法?

提前致谢。

最佳答案

我还在使用 NODE_OPTIONS='--experimental-vm-modules' 的 Jest 版本 26 中看到了这一点。当我更新到 Jest 版本 27 (27.5.1) 时,错误消失了。

对于 Jest 版本 26,我的错误如下所示:

RangeError: Maximum call stack size exceeded
Exception in PromiseRejectCallback:
internal/vm/module.js:321
const module = await linker(identifier, this);

关于ecmascript-6 - 在 Jest 中运行循环 ES6 导入时为 "Maximum call stack size exceeded",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65920299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com