direnvでNodeのバージョン切り替えを自動化する、ための.envrcを作成するスクリプト

参考:direnvでプロジェクトごとのnodeのバージョンを切り替える

 参加しているフロントエンドプロジェクトでは、使用するNodeのバージョンがpackage.jsonのengines.nodeに記述されている。
"engines": {

"node": "12.16.3"
}

 不等号などは使わず、単一バージョンで指定されている。これがプロジェクトごとに異なっており、切り替えが非常に面倒なので自動化したく↑にある記事を参考にした。

 そのあとに.nvmrcを書くのも面倒になってpackage.jsonのenginesから読み取るようにし、.envrcをコマンドで作成されるようにした。その結果物↓。
https://gist.github.com/hMatoba/f13f91813e66c1d11d4246902a7f05f7

 使い方は、必要なパッケージを入れてから、
npx https://gist.github.com/hMatoba/f13f91813e66c1d11d4246902a7f05f7




 package.jsonのengines.nodeのバージョン表記が単一バージョン指定であることのみを想定して書いている。本来ならそこに不等号などを使った指定記述もあるがそれには対応していない。
comment: 0