3

我正在使用 PureScript 开发一个项目,该项目通过spago test功能运行大量庞大且堆栈广泛的测试。在大多数情况下,递归是如此之深,以至于我达到了极限并且测试失败了RangeError: Maximum call stack size exceeded

通常我只会node使用--stack-size=$ALOT标志运行,但在这里我无法直接访问 JavaScript 评估器(有吗?)。在另一种情况下,我会使用NODE_OPTIONSenv 变量,但这里不可能,如错误消息中所述:

node: --stack-size= is not allowed in NODE_OPTIONS

有没有办法以任何其他方式访问node标志spago或绕过此问题?另外,我的情况无法通过 TCO 解决。

4

1 回答 1

1

该命令spago test包括两个步骤:

  1. spago build生成js文件./output
  2. 用node运行编译好的测试代码

第二步可以手动完成:

node --stack-size=40000 -e "require('./output/Test.Main/index').main()"

于 2021-11-15T16:33:51.393 回答