I'm trying really hard to make vagrant work well with a windows host and linux guest machine specifically for nodejs app development. Using [synced folders](https://docs.vagrantup.com/v2/synced-folders/index.html) is a must have because our devs want to be able to work with their preferred editor on their OS of choice. Disk performance is also really important for us. I'll summarize what I've tried below. The test I usually use to decide if things are working well is doing an "npm install" on the shared folder with a project, pm2 is a good package to install as a benchmark. I learned a while back that to make your life easier it's best to use the "--no-bin-links" switch with the "npm install" command, and to also use a shell with admin privileges.
**Default/vboxfs Folder Sharing**
This works pretty well, except for that it's painfully slow. Too slow.
**NFS via [vagrant-winnfsd](https://github.com/GM-Alex/vagrant-winnfsd)**
This seems to fail if there are a good number of files. It might be good enough some day, but not at the present. The performance here is ok, but pm2 fails to install. Many packages fail to install.
**NFS via [vagrant-hanewin-nfs](https://github.com/simonswine/vagrant-hanewin-nfs)**
pm2 fails to install. Many node packages fail to install.
This is actually great performance wise, but it's one-way so if you use scaffolding tools in the guest OS the files created in the guest won't be synced back to the host. There is [a plugin](https://github.com/smerrill/vagrant-rsync-back) to help with that but you have to manually run that command and you're going to overwrite things accidentally and generally have a bad time.
The performance here is ok, but pm2 fails to install. Many packages fail to install.
**Reverse Folder Sharing**
I could put the project in the guest machine, and share it to the host via smb for windows, and nfs for osx etc.., but this isn't built into vagrant and is scary given the ephemeral nature of vagrant.
Has anyone found a silver bullet for the folder sharing problem?