解決したい課題
少し前の教材を進めていたところNode.js上で
Error: error:0308010C:digital envelope routines::unsupported
が発生したので解決策を調べてみた
原因
よく読んでみるとわかりますがUNSUPPORTEDであることが分かります。
つまりNode.jsが実行環境に対応してないよ!という話でした。(発生当時のバージョンは@18)
解決策の調査
Node.jsのバージョン管理ツールについて調べてみる
- nvm(https://github.com/nvm-sh/nvm)
- nvm-windows(https://github.com/coreybutler/nvm-windows)
- nodebrew(https://qiita.com/mame_daifuku/items/373daf5f49ee585ea498)
- Volta(https://volta.sh/)
今回はVoltaを使ってバージョン管理を行ってみました
Voltaの選定理由
nvmはcurlやwgetコマンドを使うため面倒であった(インストール済みのバージョンも削除する必要があった)
nvm-windowsもインストール済みのバージョンを削除する必要があった
上記2点は弊害を恐れて回避できないか模索しました。
nodebrewとvoltaで悩みましたが、解説が最新でありわかりやすかったためvoltaで行いました。
実行
https://volta.sh/ のGetting Startedからwindows installerを起動
起動後コマンドラインで以下を実行
volta install node@{version}
(@~を除くと最新のLTSリリースを取得してきます。)
補足
package.json内に
"volta": {
"node": "12.20.2",
"yarn": "1.19.2"
}
を記入しておくことでバージョンの指定もできそう。
VoltaはRustによって開発されている様子ですがRustも気になるこの頃。