Laravel homestead で nuxt を host しようとしたら symbolic link の error

windows の homestead で nuxt を host してみようとしています。

windows (host) 側で nuxt project を生成し、
linux (guest) 側に mount された同 nuxt project 内で yarn を実行したところ、
以下の error が出てしまいました。

解決方法をご存じの方、いらっしゃいますか?

vagrant@nuxt-hosting:~/nuxt$ pwd
/home/vagrant/nuxt          
vagrant@nuxt-hosting:~/nuxt$ rm -rf node_modules/ yarn.lock
vagrant@nuxt-hosting:~/nuxt$ yarn
...
Error: EPROTO: protocol error, 
symlink 
  '../../../parser/bin/babel-parser.js' -> 
  '/home/vagrant/nuxt/node_modules/@babel/core/node_modules/.bin/parser'

以下のように Homestead.yaml を設定し、
laravel (1) と並んで nuxt (2) を用意しました。

Homestead.yaml

$ vagrant up

# vagrant ssh

load 直後の linux 側 nuxt project 内で yarn dev を実行すると error は出ず、
a

ブラウザーでも確認ができます。

ここで、一旦 windows (host) 側で作られていた

  • node_modules/
  • yarn.lock

を消した後 (6)、再度 linux (guest) 側でこれらを作り直してみます (7)。
すると、symbolic link に絡んでそうな (8) の error が出てしまいました。

試しに、
linux (guest) 側で新規に nuxt project (nuxt.2) を作り、
敢えて

  • node_modules/
  • yarn.lock

を消した後 (9)、再度 yarn を実行してこの2つを生成させてみたところ (10)、
error なく生成できてしまいました。

どうすれば解決できるのでしょう?


ちなみに、以下は error 発生時にできていた yarn-error.log の内容です。

yarn-error.log

windows 環境下の homestead, symbolic link に関しては、下記ドキュメントにも書かれています。

Symbolic Links On Windows
https://laravel.com/docs/6.x/homestead#provider-specific-virtualbox

以下のように試してみましたが、効果はありませんでした。
何か間違ってるんでしょうかねぇ?
# ちなみに、ruby は読めません

Vagrantfile

...
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    ...
    config.vm.provider "virtualbox" do |v|
        v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
    end
end

それとも NFS を試せ、というのだろうか?

下記サイトで

vagrantについて初歩的なミス
https://developer-ponpon.hatenablog.com/entry/2019/08/25/172511

④管理者権限で実行したコマンドプロンプトでvagrant upする

と書かれており、過去にそういう admin では挙動が違う経験も有ったので試してみました。

vagrant destroy した後、administrator にて

  • vagrant up
  • vagrant ssh
  • yarn

としてみましたが、以下の通り結果は同じでした。

symlink は windows 上での process の owner が admin ならば実行可能なのでは?と思い、
terminal を admin 権限で実行するのではなく、
virtualbox 自体を admin 権限で動かすべきでは? と試してみました。

  • adminvirtualbox を実行
  • 一般ユーザーでterminal を実行

案の定、通りました。
また admin 絡み、windows…

ちなみに、
「Symbolic Links On Windows」で提示されている Vagrantfile への追加は適用していません。
不要でした。