AWS
AWS CDK
JavaScript
Node.js

AWS CDKで”Argument of type ‘this’ is not assignable to parameter of type ‘Construct’.”が出た時はpackage.jsonを見ようという話

タイトル落ちですが、覚書です。

起きたこと

  • AWS CDKでCloudFormationを作ってみる
  • しばらく放置
  • 新しいリソースを追加してみる
  • Argument of type 'this' is not assignable to parameter of type 'Construct'.npm run build が失敗する

原因

「しばらく放置」がアウトでした。package.jsonをみると以下のように、追加したリソースだけ新しいバージョンという状態。

    "devDependencies": {
        "@types/node": "^8.9.4",
        "typescript": "^3.1.2",
        "aws-cdk": "^0.13.0"
    },
    "dependencies": {
        "@aws-cdk/aws-ec2": "^0.14.1",
        "@aws-cdk/aws-sns": "^0.13.0",
        "@aws-cdk/aws-sqs": "^0.13.0",
        "@aws-cdk/cdk": "^0.13.0"
    }

バージョンを揃えてrm -rf node_modules/ && npm iを実行しましょう。

    "devDependencies": {
        "@types/node": "^8.9.4",
        "typescript": "^3.1.2",
        "aws-cdk": "^0.14.1"
    },
    "dependencies": {
        "@aws-cdk/aws-ec2": "^0.14.1",
        "@aws-cdk/aws-sns": "^0.14.1",
        "@aws-cdk/aws-sqs": "^0.14.1",
        "@aws-cdk/cdk": "^0.14.1"
    }

これでnpm run buildが通ります。


Random posts

GitHubHomeEnglish