LoginSignup
17
7

More than 1 year has passed since last update.

npm install時にnode-sassでcommand failed

Last updated at Posted at 2021-12-10

前提

数年前にiOSエンジニアをやっていたのでネイティブ系はなんとなく分かるが、
フロントエンドは何となく改修は出来るが、ちょっとよく分かってないわかろうとしてない系のバックエンドエンジニア。

現象

npmインストールすると下記エラーが出る。
node-sassの確認で失敗してるっぽい。

$ npm install

〜省略〜

npm ERR! code 1
npm ERR! path /Users/mitsuaki1229/Documents/01_REX/wos-front/node_modules/node-sass
npm ERR! command failed
npm ERR! command sh -c node scripts/build.js
npm ERR! Building: /Users/mitsuaki1229/.nodebrew/node/v16.5.0/bin/node /Users/mitsuaki1229/Documents/01_REX/wos-front/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
npm ERR!   c++ '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DLIBSASS_VERSION="3.5.4"' -I/Users/mitsuaki1229/.node-gyp/16.5.0/include/node -I/Users/mitsuaki1229/.node-gyp/16.5.0/src -I/Users/mitsuaki1229/.node-gyp/16.5.0/deps/openssl/config -I/Users/mitsuaki1229/.node-gyp/16.5.0/deps/openssl/openssl/include -I/Users/mitsuaki1229/.node-gyp/16.5.0/deps/uv/include -I/Users/mitsuaki1229/.node-gyp/16.5.0/deps/zlib -I/Users/mitsuaki1229/.node-gyp/16.5.0/deps/v8/include -I../src/libsass/include  -O3 -gdwarf-2 -mmacosx-version-min=10.7 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=c++11 -stdlib=libc++ -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/libsass/src/libsass/src/ast.o.d.raw   -c -o Release/obj.target/libsass/src/libsass/src/ast.o ../src/libsass/src/ast.cpp

〜省略〜

原因

サイトを見ると、node-sassのバージョンに対応しているnodeのバージョンは決まってる様子。

$ grep node-sass package.json
    "node-sass": "^4.13.1",
    "node-sass-glob-importer": "^5.3.1",
$ node -v
v16.5.0

4.13.1の場合、Node 13にする必要がありそう。

対応

バージョン管理出来そうなrenv的なツールがあったので入れ替え。

$ brew uninstall --force node
$ brew install nodebrew

nodeをv13.14.0に切り替え。

$ nodebrew ls-remote | grep v13 | tr -s ' ' '\n' | tail -n 1
v13.14.0
$ nodebrew install v13.14.0
$ nodebrew list
v13.14.0
v16.5.0

current: v16.5.0
$ nodebrew use v13.14.0
use v13.14.0
$ node -v
v13.14.0

確認

問題なく取得出来る事を確認。

$ npm install

〜省略〜

その他

フロントエンドはなんとなく苦手意識が強い。
ネイティブとかFlutterとかは割と好きなので読めるんだが、食わず嫌い的なもんなのかな。

17
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
7