ローカルパッケージのAWS CDKを使いたい!

ならたけぽん
2022-12-09
2022-12-09

おつかれさまです。ならたけぽんです。🕊️

何かついこの前まで、やけに暑いな~なんて思っていたような気がするのですが、
ふと気がついたら、もこもこ着ている自分がいました。🐑
もう冬ですね~。
季節の移ろいは早いですね~。
秋はどこへ。🍁

早いと言えば、そう、
AWS CDKのバージョンアップのスピードも早いですね~。
2、3日ぼ~っとしていたら、
マイナーバージョン上がってますもんね~。

今回は、AWS CDKの、
ローカル環境にグローバルインストールしたバージョンと、
特定のプロジェクトのローカルパッケージ(node_modulesディレクトリ)のバージョンとで、
差異が出てしまったときのお話しです。

AWS CDKの最新バージョンは、例えば、

> npm install -g npm-check-updates

というお便利なnpmパッケージをインストールして、

> ncu -g aws-cdk

とコマンドを叩くと、

[====================] 1/1 100%

aws-cdk 2.50.0 → 2.51.1

ncu itself cannot upgrade global packages. Run the following to upgrade all global packages:

npm -g install aws-cdk@2.51.1

こんな感じで、
ローカル環境にグローバルインストールしたバージョンと最新バージョンとの差異、
加えて、アップデートのコマンドまで教えてくれます。
あら便利ねぇ。ねぇ、奥さん。😻

・・・

そして、私の場合、あまり何も考えず思考停止したまま、

> npm -g install aws-cdk@2.51.1

とコマンドを叩いてしまう。。。

> cdk --version
2.51.1 (build 3d30cdb)

やったぁ❗ これで最新バージョン💖

・・・

そして、ふと、気づく。

npmコマンドのgオプションって、
ローカル環境への、
グローバルインストールのオプションだったんじゃね?

と。。。

・・・

あの*****環境を構築したときって、もっとCDKバージョン低かったよね。。。
きっと大丈夫だよね。
下位互換性あるよね!
あしたはあしたの風が吹くよね!!
もーまんたい!!!

・・・

でも、やっぱり構築時のバージョンを使いたいよ。。。

・・・

そんなときは、npxコマンドを叩いてみると、解決するかもしれません!

github.com/npm/npx
※以下、引用

Executes <command> either from a local node_modules/.bin, or from a central cache, installing any packages needed in order for <command> to run.

※以下、引用の日本語訳(意訳あり)

ローカルの node_modules/.bin または中央のキャッシュ(グローバルインストール側)から <command> を実行し、また <command> を実行するために必要なパッケージをインストールします。

npxコマンドは、最近のnpmパッケージであれば、同梱されています!
How easy !

npxコマンドは、まず、ローカルパッケージを参照してくれるんです!
How smart !

npxコマンドの使い方は、いつものコマンドの前に、「npx」とつけるだけ!
How convenient !

例えば、

> cdk --version
2.51.1 (build 3d30cdb)

npxコマンド無しですと、グローバルインストールのバージョンが利用できて、

> npx cdk --version
2.41.0 (build 6ad48a3)

npxコマンドありですと、ローカルパッケージのバージョンが利用できます。

あぁ。。。
これで、きょうは、ちょっとだけ枕を高くして眠れるかな。。。

もちろん、最新バージョンに追従することは重要ですが、
追いかけっこに疲れたら、
いろいろ考慮して、
ときには止まってみることも重要ですね。

良き良き、AWS CDKライフを!!!🌈