Keep multiple browsers & devices in sync when building websites.

Follow @Browsersync on twitter for news & updates.

## Features Please visit [browsersync.io](https://browsersync.io) for a full run-down of features ## Requirements Browsersync works by injecting an asynchronous script tag (``) right after the `` tag during initial request. In order for this to work properly the `` tag must be present. Alternatively you can provide a custom rule for the snippet using [snippetOptions](https://www.browsersync.io/docs/options/#option-snippetOptions) ## Upgrading from 1.x to 2.x ? Providing you haven't accessed any internal properties, everything will just work as there are no breaking changes to the public API. Internally however, we now use an immutable data structure for storing/retrieving options. So whereas before you could access urls like this... ```js browserSync({server: true}, function(err, bs) { console.log(bs.options.urls.local); }); ``` ... you now access them in the following way: ```js browserSync({server: true}, function(err, bs) { console.log(bs.options.getIn(["urls", "local"])); }); ``` ## Install and trouble shooting [browsersync.io docs](https://browsersync.io) ## Integrations / recipes [Browsersync recipes](https://github.com/Browsersync/recipes) ## Support If you've found Browser-sync useful and would like to contribute to its continued development & support, please feel free to send a donation of any size - it would be greatly appreciated! [Support via PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=shakyshane%40gmail%2ecom&lc=US&item_name=browser%2dsync) ## Supported by Originally supported by [JH](https://www.wearejh.com) - they provided financial support as well as access to a professional designer to help with Branding. Apache 2 Copyright (c) 2021 Shane Osbourne