I get what you mean, but my question is more about how you can run your dev environment when your "project" requires you to have multiple things running (a react spa, a rails backend, three microservices, two databases, ...). Understand "do you have one single command to run all of your resources or do you start them one by one?".
Thanks for your reply though ! Your solution might fit people who have dedicated instances for projects.
Whatever the livereload tool is (in this case it was a webpack watcher on osx), the problem is that a change on the host isn't forwarded to the guest correctly when using shared folders, so the socket server doesn't send the update notification to the browser. :/
You have three options to work around this :
- use a polling based approach
- use a plugin like https://github.com/adrienkohlbecker/vagrant-fsnotify which internally uses `touch` (this is the one i used to choose)
- use an ssh mount (not sure about this one, it's been a long time)
All of these workarounds have their downsides, so I'm wondering if someone has another great approach to get a stack up and running when you have a lot of dependencies (not speaking about packages, but different sub-projects)
I'm more asking about how you start an entire dev environment, like when you have your front 1, front 2, api 1, microservice 1-2-3-4, ... that all need to be running in order for you to start working.
For example: using pm2 to start your entire stack in one command (only when it's all nodejs obviously)
It's not really related to the tech you use for every project :)
Past winter, I had to deploy a new version of a package that was used by a lot of our applications (at least 5 apps, some for our customers, and some internal ones).
Because it was a "simple" package, we did not have any deployment system ready, and deploying was just SSH/SCP commands that created a directory with the package version and upload my dist. I forgot to bump the package version, and ended up wiping a working and in-use package. The problem is that this package can only work up to a specific angular version (which wasn't set in the package.json, so my build installed the wrong one), therefore the only thing that our applications were producing was a blank page.
And because I had wiped the original package, I had no way to know which angular version we needed, and we had to find a cached version to get it, by reading the angular license comment in the minified code. The shittiest 5 mins of my life, even though I'm sure no one noticed it.
What I learned from this : don't speak with someone else while deploying, huge focus loss.