📝

Vagrantの共有フォルダ上でSharpモジュールが使えないので諦めました…(ポエム)

2020/12/14に公開

Reactの静的サイトジェネレーターGatsbyに入門しております。
Gatsbyチュートリアルで画像リサイズモジュールSharpをプラグイン利用するんですが、Vagrantのubntuの共有フォルダではインストール失敗します。

詳細

Vagrantで上のUbuntuにて、
windows共有フォルダ内のプロジェクトでyarn add sharpやると
下記のハードリンク作成処理でコケます。

ERR! sharp EPERM: operation not permitted, link '/home/username/workspace/node_modules/sharp/vendor/8.10.0/include/pnglibconf.h' -> '/home/username/workspace/node_modules/sharp/vendor/8.10.0/include/libpng16/pnglibconf.h'

調べたこと

  1. 非共有フォルダだと、yarn add shapで問題なくインストールできる
  2. --no-bin-links 意味無し
  3. Vagrantはハードリンクに対応しないとのこと
    1. シンボリックリンクならvagrantfileで設定すれば有効だがそういう問題ではない
  4. Sharpモジュール公式Issueではdocker for windows使えとのこと
  5. 一時的に共有モード解いたらどうかなと思ったけど、ファイル実体がwindow側なので単にプロジェクト見えなくなるだけで意味がなかった…
  6. aliasでコマンド乗っ取ればいける?alias link='ln -s'だめでした。

終わり

どーしてもVSCodeで開発したい!
のでvagrant環境を卒業してwsl2環境構築します😇
(まーた色んな所でハマりそうだなあ…)

Discussion