I implemented a service worker that intercepts requests and can return any error code / data. Great to exploratory testing. See http://glebbahmutov.com/blog/robustness-testing-using-proxies/ and code at https://github.com/bahmutov/service-turtle
The bad thing about service workers - they are very fresh. Even in Chrome they did not have a way to communicate back to the main window any result - post message mechanism was broken. I feel soon the problems will be fixed and every website will use them.
Also checkout lazy assertions - helpful info without paying the performance price. https://github.com/bahmutov/lazy-ass
I have second companion tool lazy-ass-helpful https://github.com/bahmutov/lazy-ass-helpful that transforms any code that uses lazy assertions so that you do not have to write the text messages - it puts the predicate expression and variables into error message on the fly.
I use badges from david-dm.org and whenever I see red (minor patch out of date) for either dependencies or dev dependencies I use my tool next-update (https://github.com/bahmutov/next-update) to actually update dependencies one by one to latest version. The key is that next-update runs your tests and tells you if something fails. So you upgrade only with dependencies that do not break your project. There is even a public anonymous stats telling how likely a particular update to break stuff http://next-update.herokuapp.com/
I also use grunt-nice-package https://github.com/bahmutov/grunt-nice-package to remove all *, ^ and ~ from dependency versions - I want to have the exact versions, even a patch update can break stuff.