2013-06-19

nvmでNode.jsバージョン管理した時の苦労話

macでNode.jsのv.0.10.11を使おうと、homebrewでインストールしたnodeを消して、nvm経由でNode.jsを管理しようと色々やってたら悲しくなったのでメモ。

TypeError: Arguments to path.resolve must be strings

↑というエラーがnpmを使った時に起こりました。
nvmはnpmもまとめて簡単インストール☆してくれるので、npmが悪いわけない…原因はほかにあるはずだ……しかし、これがいけなかったのです。。路頭に迷い、作業時間をかなり削ってしまいました。。


原因

npmのversion違いでした。
調べるとpath.resolveの変更がNode.jsのv.0.9.xくらいにあったみたいで、v.0.8.xの時に動いたnpmではv.0.10.xの作りだと動かないみたい。

npm -vしたら、1.1.xでした。Node.js v.0.10.xでは、npm 1.2.x以上でないと動かないっぽいです。


えっ、でもnvm使ってるんじゃないの?

使ってますが、/usr/local/bin/npmに、最初にnode.jsインストールしたときのnpmが残っていました(・ω<)テヘペロ
だから、npm使うと$PATHの順番的に古いほうが優先されて上記エラーが出てたんですね。

削除して、~/.nvm上の該当versionのnpmを使うように.bashrcを書き換えて糸冬了。


今回の件から私が得るべき教訓は

・アンインストールは徹底的に。
・動かなかったらpathをまず調べろ。

でした。

0 件のコメント: