Macを新調したのを機に、Node関係をいちから設定しなおしました。
旧環境から持ち込んだpackage.jsonをインストールしようとしたところ、以下のようなエラーが表示されました。
error: no template named 'remove_cv_t' in namespace 'std'; did you mean 'remove_cv'?
原因
node-sassが最新のNodeに対応していないことが原因のようです。
ここのissueによるともう修正されているようなのですが…nodebrew経由だと最新バージョンがインストールされないのでしょうか?
対応
node-sassを再インストールする手も考えられましたが、私はNodeのバージョンを旧環境と同じ15に下げる対応をしました。その方が旧環境から他のプロジェクトを移行したときに、後々問題が少なそうだからです。
nodebrewを使用している場合、useコマンドで使用バージョンを変更することができます。
インストールできるバージョンをリストアップする
$ nodebrew ls-remote
15系の最終版をインストールする
この記事を書いた時点では v15.14.0 が最新です。
$ nodebrew install-binary v15.14.0
nodebrewで使用するバージョンを変更する
$ nodebrew use v15.14.0
確認(インストールされているバージョン一覧を表示)
$ nodebrew ls
currentに変更したバージョンが入っていればOKです。
current: v15.14.0
よりにもよってSassなので、あまりNodeの扱いに慣れていないマークアップ関係の人ほど、はまりそうな気がします。
node-sassをバージョンアップすると解決するのかご存じの方がいたら、コメント欄に書いてくださるとありがたいです。
エラーの詳細は、stackoverflowに記載されています。C++のスクリプトと干渉しているようです。
↧