Gatsby v2をM1 Macでコンパイルエラーを解消
M1 Mac で Gatsby v2 がコンパイルエラー
M1 Mac で起動しようとすると、以下のようなエラーが起こった。
Error: Something went wrong installing the "sharp" module
Error relocating /usr/lib/libpango-1.0.so.0: g_memdup2: symbol not found
- Remove the "node_modules/sharp" directory then run
"npm install --ignore-scripts=false --verbose" and look for errors
- Consult the installation documentation at https://sharp.pixelplumbing.com/in stall
- Search for this error at https://github.com/lovell/sharp/issues
解決策
resolutions で sharp モジュールのバージョンを指定する
"dependencies": {
...
"gatsby": "^2.21.37",
"gatsby-image": "^2.4.4",
"gatsby-plugin-sharp": "^2.6.4",
"gatsby-transformer-sharp": "^2.5.2",
...
},
# ↓以下を追加
"resolutions": {
"sharp": "^0.29.1"
},
解決までの流れ
Gatsby のサイトには、この sharp というモジュールを使っている gatsby-plugin-*をアップデートしてと書いてある
しかし、プラグインをアップデートすると、Gatsby v2 で上手く動かない。
調べていくと、sharp モジュールは 0.29.0 から M1 Mac に対応しているようだった
https://sharp.pixelplumbing.com/install#apple-m1
sharp のバージョンだけ指定すれば動かないかな〜と resolutions を使ってみたら動いた!
package.json に以下を追記
"resolutions": {
"sharp": "^0.29.1"
},