


Follow these one-time set-up instructions then at the bottom, the new command for running a Jekyll site from your computer: Unfortunately Jekyll is coded in Ruby which can be tricky to install on Windows. To do this you need to run Jekyll locally on your computer and then point your browser at your localhost. This avoids potentially breaking a site, or having to a push simply to visualize your work (only to realize a minor typo and then stage-commit-push a second time). Yes it is annoying to wait to install gems for a fresh project each time but after that it is quick to work with.It’s always a good idea to verify changes locally before pushing them to GitHub. But the problem is that I want to use the newer versions of gems or custom gems for my Netlify projects. The situation is bit different for simulating GH Pages locally, as I could setup my user environment to exactly match the gem version of GH Pages, at least for the gems that I care about.

I have also had a ton of annoying issues over the years where a user-level or root-level change which was maybe even an automated update broke multiple projects - in one case my IDE itself broke. Yes there is duplication especially of larger gems, but this is acceptable for robustness it gives each project and when storage is not an issue. No worrying what the global environment is on each machine or making sure you replicate it on each. If I want to setup a project on a different laptop or server, its dependencies are all contain in the Gemfile and installed into the local vendor/bundle. Sometimes you'll install a new gem and it will upgrade something else behind the scenes and then later you find another project project and it is hard to work out why. If two projects need different versions of the same gem, they can have their own space without conflicting.įrom your other comment on Jekyll it looks like you can have multiple versions of a gem installed globally, but that is not they way it goes in Python and Node.js. The idea of isolating dependencies into project folder like vendor/bundle is the same as creating a virtual environment in Python or node_modules in Node.js.
