nodist でプロジェクトごとに node のバージョンを固定する(失敗)

nodist でプロジェクトごとに node のバージョンを固定する – Ewig Leere(Lab2)の続きです。

現象

前回は切り替えられることを確認して実際に動かさなかったのですが、動かしてみたらエラーが発生してしましました……。

> gulp
gulp[62020]: c:\ws\src\node_contextify.cc:655: Assertion `args[1]->IsString()' failed.
 1: 00007FF66C9546CF napi_wrap+113583
 2: 00007FF66C8FF7C6 v8::base::CPU::has_sse+66646
 3: 00007FF66C8FFB41 v8::base::CPU::has_sse+67537

## 略

gulpを実行しようとしたら思いっきりこけましたね。

対処

node_modulespackage-lock.jsonは冒頭の方法を見付ける前の nodist でバージョンを手動で切り替えて使っていたものをそのまま使用しているので、特に問題はないはずですが……。

前回と今回の違いは、手動で nodist で node のバージョンを切り替えていたか、 .node-version に頼って手動切り替えを行わなかったか、の違いのみです。

仕方ないので従来通り nodist で node のバージョンを切り替えます。

> nodist X.XX.X
X.XX.X
X.XX.X (global)

すると、普通に動きました。どうも .node-version に頼るだけだとこける模様。

調査

一応上述で出たエラーで検索してみると、 node_modules 等を削除したり node のバージョンを切り替えたりしたら動いたということで、やはり原因は node のバージョンに起因するものと考えられます。

……おとなしく今まで通り手動で切り替えるのが吉、ですかねぇ。……うーん、残念。

参考

nodist の local オプションについて

gulp のエラー

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。