nodistでnode.jsのv10.10.0(2018/09時点の最新版)をインストールした際に、npmのバージョンをv6.4.1にアップデートするのが上手くいかなくて手間取った話。
<UPDATE 2019/04/11> 久しぶりに確認に行ったら、nodistは[0.9.1](https://github.com/nullivex/nodist/releases/tag/0.9.1)がリリースされていました。 本記事記載バージョンは0.8.8です。 最新版を利用すれば色々と問題解決すると思います(8/26一寸補足:この記事を参照した上で、再インストールして[解消されている記事](https://qiita.com/taketakekaho/items/655e63c35a9467f42afa "nodistでnpmとNode.jsのバージョンが合わせられずエラーとなった")がありました)。 この記事を参考にする際には、お手元のバージョンを確認の上で読んでいただけるとお手間を取らせないで済むかと思います。 </UPDATE 2019/04/11><UPDATE 2019/02/27>
本文記載箇所以外にもいくつか修正ポイントがあるらしく、フォーク先のastrata-eu/nodistの修正コミット内容もトラブルが解消しなければ参考になるなと思ってます。
</UPDATE 2019/02/27>
その道の人たちは問題なく解決できてる話だとは思いますが・・・。
>nodist 10.10.0
Installing 10.10.0
10.10.0 [===============] 24164/24164 KiB 100% 0.0s
Installation successful.
>node --version
v10.10.0
>npm --version
4.0.5
nodistでnode.jsの最新版を指定しても、そのままではnpmは対応するバージョンにはならない( node.jsバージョン対応表)。
nodist npm match
でアップグレードを図るがエラー発生。
モジュールのDLあたりで失敗している。
メッセージ的には、DL用URLの問題な感じですね。
Error: Failed to read response from https://codeload.github.com/npm/npm/tar.gz/v6.4.1
どうも2018/07/14のv.6.2.0リリースから、リポジトリが移動した模様。
https://github.com/npm/npm
↓↓↓↓↓↓↓↓↓↓↓
https://github.com/npm/cli
既にPullReqは出てます。っが・・・・一月近くは反応なし(2018/09現在)。
https://github.com/marcelklehr/nodist/pull/217
仕方がないので、PullReq同様URLを変更して対応。
Nodeistインストール先のlibディレクトリ下にある、npm.jsを修正(codeload.github.com/npm/npm ⇒ codeload.github.com/npm/cli)。
/**
* Get a download URL for the version
* @param {string} version
* @return {string}
*/
NPMIST.downloadUrl = function(version){
return 'https://codeload.github.com/npm/cli/tar.gz/vVERSION'
.replace('VERSION',version.replace('v',''));
};
ところで、修正前に実行した「nodist npm match」の失敗で時点で、npmのバージョンdirができちゃいます。
dirがあると「nodist npm match」はエラーにはならないけど、versionを確認するとエラー
dir削除後にnpm matchさせれば無事にインストールされてアップデート完了
・・・Qiita初投稿なので、お作法とか分かっていません。何かあったら優しく教えてください。