aws-cdk(typescript)のテストで RangeError: Maximum call stack size exceededが出た
現象
cdkコマンドでコードを自動生成した後に以下のようなサンプルのテストコードがついてきます
import { expect as expectCDK, matchTemplate, MatchStyle, } from "@aws-cdk/assert"; import * as cdk from "@aws-cdk/core"; import * as multiAz from "../lib/multiAz-stack"; test("Empty Stack", () => { const app = new cdk.App(); // WHEN const stack = new multiAz.MultiAZStack(app, "MyTestStack"); // THEN expectCDK(stack).to( matchTemplate( { Resources: {}, }, MatchStyle.EXACT ) ); });
npm test
を入力すると RangeError: Maximum call stack size exceeded
でテストができませんでした
at deepCopy (node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.ts:170:14) at deepCopy (node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.ts:176:18) at deepCopy (node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.ts:176:18) at Array.map (<anonymous>) at deepCopy (node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.ts:170:14) at deepCopy (node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.ts:176:18) at deepCopy (node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.ts:176:18) at Array.map (<anonymous>) at deepCopy (node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.ts:170:14) at deepCopy (node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.ts:176:18) at deepCopy (node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.ts:176:18) at Array.map (<anonymous>) at deepCopy (node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.ts:170:14) at deepCopy (node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.ts:176:18) at deepCopy (node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.ts:176:18)
解決 ?
以下のリンクに書いてあるように
1: package-lock.jsonを削除
2: node_modulesを削除
をしました。その後
3: package.jsonにあるaws-cdk関連のmoduleバージョンを最新に揃える
4: npm install
で解決しました stackoverflow.com
まとめ
残念ながら私はjavascriptに詳しいわけではないので原因が全く分かりませんが、すぐに解決したい人の役に立てればと思います。