前言
我對這錯誤的印象是某次在練習寫測試時裝 jest 後出現的,檢查了package-lock.json
後看起來jest-haste-map
這個套件有用到 fsevents,而之後使用npm install
或者yarn install
皆會出現以下這個訊息:
環境為 Mac OS Catalina version 10.15.2
看起來是在執行階段時node-gyp
出了問題,接著它自己重新執行了node-gyp rebuild
後出錯,起初我認為是套件的問題並找到了這個回答並執行:
1 | sudo npm uninstall node-gyp -g |
但從來沒有全域安裝node-gyp
過,也有些網友執行node-gyp configure
是可以的,而我執行後還是失敗,狀態跟這個 issue 差不多。
後來看到 fsevents 在套件說明裡有寫到:
The FSEvents API in MacOS allows applications to register for notifications of changes to a given directory tree. It is a very fast and lightweight alternative to kqueue.
並且注意到剛剛圖裡面有訊息是跟 xcode 以及 apple 相關,最後找到了這個 issue
我的解決方案
有些人可能是有重灌或環境重設導致沒有安裝 xcode,此時只要執行 xcode-select --install
即可(參考說明)。
這邊我使用的解決方案為這個 issue,執行以下兩個指令來重新安裝 xcode:
1 | sudo rm -rf $(xcode-select -print-path) |
原因可能是因為我重舊版本向上更新之後 xcode 沒有相容當前版本,所以我使用以上指令來刪除重新安裝。
不過這個指令很暴力的使用
rm -rf
,使用它相對危險,使用前請詳閱公開說明書 😆。
結論
為了練習測試安裝了 jest 卻讓我看著一堆 warning 實在是恨得牙癢癢,所幸目前這樣解決完後是可以用的,就看接下來些新的 side project 後會不會有其他問題再來更新,
另一方面也可能因為我在寫 side project 時安裝了一堆有的沒的東西導致這個結果,看來也得找時間來整理一下環境了~