In BrowserSync 2.x, options are stored in an immutable data structure. While the public API remains largely unchanged, you can no longer access nested options via standard object property notation (e.g., bs.options.urls.local). Instead, you must use the .getIn() method to retrieve nested values.
// Old 1.x way (will not work in 2.x)
browserSync({server: true}, function(err, bs) {
console.log(bs.options.urls.local);
});
// New 2.x way
browserSync({server: true}, function(err, bs) {
console.log(bs.options.getIn(["urls", "local"]));
});