みなさんnpmは使いますか?
私は最近めっちゃ使います。フロント側でも環境構築にはnpmやyarnを使う機会が多いなと感じています。
そんな中で、会社のPCでは無事なのに、私物PCではエラーでビルドできないなんてことが結構あるのです。
今日は意外なところからそれを解決したので、同じ状況に陥っている誰かにもお役にたてれば。。
起きたこと
Laravel×Vue.jsのプロジェクト構築でnpmを使用しました。
しかしnpm installでビルドエラー。
$ npm install
エラーログを一部抜粋するとこんな感じ。
...
Last 10 log lines:
/usr/local/include/Block.h:263:2: error: unknown type name 'lzma_bool'
lzma_bool reserved_bool2;
^
/usr/local/include/Block.h:264:2: error: unknown type name 'lzma_bool'
lzma_bool reserved_bool3;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [file.o] Error 1
make: *** Waiting for unfinished jobs....
...
心当たりのないファイルで怒られている。。なぜだ。
原因はMacの移行ツールを使ったせいでbrewが一部壊れていたこと?
世界のお友達によると、移行ツールのせいの可能性が。
まず、問題-古いMacから新しいMacへの移行ツールが正しくサポートbrewされておらず、brewによってインストールされたライブラリ。移行後、brew doctor.hファイルの問題と破損したシンボリックリンクを含む完全なログを実行しました。
その後、ライブラリと依存関係に関する各問題の解決を開始し、brew doctor出力をクリーンアップすると、rubyを正常にインストールできます。(翻訳)
Can’t install ruby on macOS High Sierra #1169
確かに私もHigh Sierraから移行ツールを使った。。
怒られているのは/usr/local/include/Block.hのファイルなのでこいつを消すことにした。
rmコマンドでもいいけど、オプション忘れたので普通にゴミ箱にポーイしてから再度npm installしたら無事に成功した!
もしもそれでもだめなときは・・・
Block.hを消したら私は済んだけど、もしもまだうまくいかないときはこちらの記事に続きがあるので試してみるのはいいかもしれない。
high sierra で rbenv を使おうとしたら迷路に迷い込んだ
もしかしたらrbenvを実行したらこのへんもやることになるのかもしれないな・・笑
締めのひとこと
Macの移行ツールは便利だ!と思っていたけどこんなところで落とし穴があるとは・・環境構築は本当に大変だ。