見出し画像

【React.js, Node.js, n】node v9.11.1にアップデートでnode-sass非対応エラーが出たら、nを使うのが便利!

※ 旧ブログ、Frontend Life in DEのリライト記事。
※ 新ブログは Aiki x Developerhttps://aiki-developer.com)へ。

どうもー、ドイツでフリーランスのフロントエンドエンジニアをしています、Arisaです。

ようやくドイツにも春がここ数日で訪れて、ジャーマンたちはこぞってまだノースリーブは寒いのに、超夏服で「若いなー」と眺めております 笑

さて、少し前(4ヶ月前くらいですが)に構築した環境を使用したのでNode.jsのバージョンが原因で、いつもwarningがbuildするたびに出てくるのが目障りだったので、最新のv9.11.1をインストールしたんです。

が、node v9.11.1にアップデートしたのが原因で、取り組んでいるプロジェクトのnode-sassに対応してないとターミナルで怒られました。

結果、もっと目障りな警告が増えたので意味ない 笑

nodeをダウングレードしようと色々試しましたが、英語ソースではあまり出てこなかった n で対応したら超スムーズにダウングレードできた上に、Gitからcloneするか、npmでパッケージインストールするかで簡単にnodeのバージョン管理ができるライブラリなので、新たにHomebrewとかインストールする必要もなくおすすめという記事、兼すぐ忘れるのでメモ書きしておきます。

状況

元々のnodeのバージョンは忘れたけど多分バージョン7系。

プロジェクト的には warning でターミナルから6系、8系あたりにしないと原因不明のバグが発生するかもよと怒られ続けていたけど、別にbuildしても特に問題あったわけでもなく、しばらく無視していた。

さすがに毎回buildするたびにwarning見るのも目障りになってきたので、手っ取り早く最新のnodeバージョンをnでインストールしたら、node-sassに対応してないとターミナルでもっとこっぴどく怒られて、buildどころかserveできなかった。

実践した解決方法

うまくいかなかったbrew

nodeのダウングレードにbrewコマンドを使うも、現在のv9.11.1のnodeバージョンからunlinkするところでうまくいかず。

やっぱりnが簡単で早かった

nで指定のバージョンv8.0.0をインストールして適応。

その前に、まだnのコマンド打っても反応ない場合は、npmでパッケージとしてインストールするか、

$npm install -g n

Gitからcloneすると使えます。

$git clone https://github.com/tj/n.git cd n & make install

一応現在のnodeバージョンを確認したいので、-vでチェック。

$node -v

ここからがNode.jsのバージョン切り替え方法。

まずは特定の指定したいバージョンのnodeを取得。

取得方法もいたって簡単でnにバージョンを打つだけ。(※ 私はsudoが必要と怒られたので、場合によっては臨機応変にエラーメッセージに従ってください)

$sudo n 8.0.0

パスワードを聞かれるので、自分のパソコンにログインする際のパスワードを入力。

これで特定のこれから有効化したいバージョンのnodeがインストール完了!

これだけでは切り替わっておらず、まだv9.11.1のままなので特定のバージョンに切り替えをしていきます。

ここも非常に簡単で、打つコマンドはnだけ。

$n

インストールされているバージョンのnodeが出てくるので、切り替えたいバージョンのものに青いポインター(呼び方がわからないけど)みたいなカーソルを合わせて指定します。

これで指定のバージョンに切り替え完了!

npmと合わせて使うために、npmをインストールする必要があるので、最後まで気を抜かず。

$curl -0 -L http://npmjs.org/install.sh | sudo sh

ついでにいらないバージョンを消す方法

いらないものはなるべくパソコンから取っ払いたいので、さっきのv9.11.1を rm で削除。

$n rm 9.11.1

いらなかったのでv9.11.1を葬ったら、めっちゃ使うyarnも一緒に葬られていたので、またyarnをインストールし直しました(該当のプロジェクトフォルダdirectryでインストール)。

めでたしと思いきや、yarn run serve で開発中のプロジェクトでエラーは出ないけど、ブラウザ白いままだったので、buildすればよかったんだろうけど、package.jsonがv8系はpackage-lock.jsonも追加であると聞いていたので、node_moduleも変わってそうだし、一旦node_moduleを消して npm install をし直しました。(もっとスマートな方法もあるんだろうけど)

改めてbuildすると開発中のプロジェクトも無事にbuildされ、ブラウザでも反映が確認できるし、あのnodeバージョン合ってないと怒られていたwarningも、きちんと合ったバージョンにnで切り替えたのでコマンドライからのお小言がなくなり、スッキリしました。

色々ソース見たけど、英語ソースはbrewとかが多く、面倒でしたが、こちらの記事を参考にさせていただきました。

http://co.bsnws.net/article/139
何か間違いがあればご指摘もお待ちしてます。

では

ちゅーす

この記事が気に入ったらサポートをしてみませんか?