16
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS CDKはグローバルでインストールしない

Posted at

はじめに

結論を先に書くと、ローカルにインストールし、npx cdkで呼びましょう、と言う話です。

本文

グローバルにインストールするデメリット

グローバルにインストールをして暫くたつと、以下のようなエラーがでるようになります。

This CDK CLI is not compatible with the CDK library used by your application. 
Please upgrade the CLI to the latest version. 
(Cloud assembly schema version mismatch: Maximum schema version supported is 4.0.0, but found 7.0.0)

原因としては、グローバルに入れたCDKとローカルのCDKのバージョンに違いがあるからです。
インストールした直後には違いはないので、グローバルに入れて、そのまま利用してしまう人が多いと思いますが、後日新しいバージョンが出た時に修正をして、npm run buildをすると新しいバージョンが出ているメッセージが出て、更新を促され、以下のようなコマンドを実行します。

$ ncu -u
$ npm i

しかし、これはローカルのみの更新となる為、グローバルは更新されず、バージョンの違いが発生して上記のエラーとなります。

ローカルにインストールする方法

これを回避する為、AWS CDKはローカルにインストールします。

npm install aws-cdk

こうする事でCDK自体がpackage.jsonでバージョン管理されるようになり、バージョンを纏めて管理できるようになり、ncuの実行時に違いが発生する事がなくなります。

ローカルでインストールした場合の実行方法

bash: cdk: command not found

しかし、このやり方だとcdkでは上記のようなエラーとなって、呼び出せなくなってしまいます。cdkが.\node_module\.binにあり、パスが通ってないからです。パスを通す事で実行可能になりますが、プロジェクト毎で切り替えるのは辛く、もっと簡単な方法があります。

npx cdk bootstrap

npxを使う事で、複雑な事はせず、CDKを実行する事ができます。

さいごに

CDKはたまにしか触らないのに、嵌りポイントが多く、ネットにまだ記事が少なく、自分も直ぐに忘れてしまうので、少しずつ、増やしてきます。

参考文献

16
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?