Node.js とても流行っていますね。
https://nodejs.org/ja/download/releases/
みなさん、 nodejs のバージョン管理はどうされていますか?
複数バージョンをインストールしたあと、状況に応じて適切なバージョンに切り替えないといけません。
そんな時に便利なのが「nodist」https://github.com/nullivex/nodist」
コマンドひとつでバージョンを スイッチ できます。
nodist で複数バージョンをインストールしたところ
v11 から v12 へスイッチしてみます。
うんうん、とても簡単です
インストール可能なバージョンの一覧を表示するには
nodist dist
nodist + xx.xx.xx
Node.js 開発者には nodist が必須ですね。最&高
閑話休題
npm も古いだろから最新バージョンにアップデートしようとしたところ
>nodist npm match npm match stream.js:74 throw er; // Unhandled stream error in pipe. ^ Error: Failed to read response from https://codeload.github.com/npm/npm/tar.gz/v6.4.1 at Request.(C:\Program Files (x86)\Nodist\lib\build.js:110:25) at emitOne (events.js:96:13) at Request.emit (events.js:188:7) at Request.onRequestResponse (C:\Program Files (x86)\Nodist\node_modules\request\request.js:954:10) at emitOne (events.js:96:13) at ClientRequest.emit (events.js:188:7) at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:473:21) at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23) at TLSSocket.socketOnData (_http_client.js:362:20) at emitOne (events.js:96:13) at TLSSocket.emit (events.js:188:7) at readableAddChunk (_stream_readable.js:176:18) at TLSSocket.Readable.push (_stream_readable.js:134:10) at TLSWrap.onread (net.js:551:20)
がーーん
エラーですね、エラー
しかもですよ、アップデートに失敗するだけならまだしも
npm コマンドが使えなくなってるぢゃないっすか。
>npm -v internal/modules/cjs/loader.js:584 throw err; ^ Error: Cannot find module 'C:\Program Files (x86)\Nodist\npmv\6.4.1\bin\npm-cli.js' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15) at Function.Module._load (internal/modules/cjs/loader.js:508:25) at Function.Module.runMain (internal/modules/cjs/loader.js:754:12) at startup (internal/bootstrap/node.js:283:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
はぁはぁ壊れちゃったのね・・・再インストールするかぁ
なんでだろうと調べたところ、npm のダウンロード先URLが変わっているのが原因でした。
【変更前】https://codeload.github.com/npm/npm/tar.gz/vVERSION
【変更後】https://codeload.github.com/npm/cli/tar.gz/vVERSION
"C:\Program Files (x86)\Nodist\lib\npm.js"を編集して修正します。
npm match で npm をアップロードできるようになります
>nodist npm match npm match https://codeload.github.com/npm/cli/tar.gz/v6.4.1 [============== ] 4687/5150 KiB 91% 2.0s >npm -v 6.4.1
FYI
Node.jsは Googleが作った V8 で動いています。
V8は、C++ でコーディングされています。
JavaScript も やっぱり古典 C言語で書かれています。
それにしても V8 ってカッコいいですね。