(#2884) - upgrade browserify to version 6
diff --git a/bin/build-plugin.sh b/bin/build-plugin.sh
index a404e5d..90aa5b7 100755
--- a/bin/build-plugin.sh
+++ b/bin/build-plugin.sh
@@ -9,10 +9,11 @@
     echo "Error: must specify OUTPUT_FILENAME parameter."
     exit 1
 fi
+DEREQUIRE=./node_modules/.bin/derequire
 
 ./node_modules/.bin/browserify lib/plugins/index.js \
     -r $LEVEL_BACKEND:leveldown \
     -r ./lib/plugins/config-$LEVEL_BACKEND.js:adapter-config \
-    -r ./lib/plugins/migrate-browser.js:../deps/migrate \
-    -r ./lib/plugins/migrate-browser.js:../adapters/../deps/migrate \
-    -o ./dist/$OUTPUT_FILENAME
+    -r ./lib/plugins/migrate-browser.js:./lib/deps/migrate \
+    -r ./lib/plugins/migrate-browser.js:./lib/deps/migrate \
+    | $DEREQUIRE > ./dist/$OUTPUT_FILENAME
diff --git a/bin/dev-server.js b/bin/dev-server.js
index fd06fa7..04eea56 100755
--- a/bin/dev-server.js
+++ b/bin/dev-server.js
@@ -3,15 +3,25 @@
 'use strict';
 
 var fs = require('fs');
-var glob = require('glob');
 var Promise = require('bluebird');
-var watchGlob = require('watch-glob');
+var through = require('through2');
+var _derequire = require('derequire');
 var watchify = require('watchify');
 var browserify = require('browserify');
 var cors_proxy = require('corsproxy');
 var http_proxy = require('pouchdb-http-proxy');
 var http_server = require('http-server');
 
+function derequire() {
+  var out = new Buffer('');
+  return through(function (data, _, next) {
+    out = Buffer.concat([out, data]);
+    next();
+  }, function (next) {
+    this.push(_derequire(out.toString()));
+    next();
+  });
+}
 var queryParams = {};
 
 if (process.env.ES5_SHIM || process.env.ES5_SHIMS) {
@@ -26,37 +36,43 @@
 
 var indexfile = "./lib/index.js";
 var outfile = "./dist/pouchdb.js";
-var perfRoot = './tests/performance/*.js';
+var perfRoot = './tests/performance/';
 var performanceBundle = './tests/performance-bundle.js';
 
-var w = watchify(indexfile).on('update', bundle);
-
-function writeFile(file, callback) {
-  return function (err, data) {
-    if (err) {
-      console.log(err);
-    } else {
-      fs.writeFileSync(file, data);
-      console.log('Updated: ', file);
-      if (typeof callback === 'function') {
-        callback();
-      }
-    }
-  };
-}
+var w = watchify(browserify(indexfile, {
+  standalone: "PouchDB",
+  cache: {},
+  packageCache: {},
+  fullPaths: true
+})).on('update', bundle);
+var b = watchify(browserify({
+    entries: perfRoot,
+    cache: {},
+    packageCache: {},
+    fullPaths: true
+  })).on('update', bundlePerfTests);
 
 function bundle(callback) {
-  w.bundle({standalone: "PouchDB"}, writeFile(outfile, callback));
-}
-
-function bundlePerfTests(callback) {
-  glob(perfRoot, function (err, files) {
-    var b = browserify(files);
-    b.bundle({}, writeFile(performanceBundle, callback));
+  w.bundle().pipe(derequire()).pipe(fs.createWriteStream(outfile))
+  .on('finish', function () {
+    console.log('Updated: ', outfile);
+    if (typeof callback === 'function') {
+      callback();
+    }
   });
 }
 
-watchGlob(perfRoot, bundlePerfTests);
+function bundlePerfTests(callback) {
+   
+  b.bundle().pipe(fs.createWriteStream(performanceBundle))
+  .on('finish', function () {
+    console.log('Updated: ', performanceBundle);
+    if (typeof callback === 'function') {
+      callback();
+    }
+  });
+
+}
 
 var filesWritten = false;
 Promise.all([
diff --git a/package.json b/package.json
index 33d089d..dd8cd07 100644
--- a/package.json
+++ b/package.json
@@ -39,13 +39,11 @@
     "rimraf": "2.2.8",
     "pouchdb-server": "^0.5.1",
     "commander": "~2.1.0",
-    "watchify": "~0.8.2",
     "uglify-js": "~2.4.6",
     "jshint": "~2.3.0",
     "pouchdb-http-proxy": "~0.10.3",
     "corsproxy": "~0.2.13",
     "http-server": "~0.5.5",
-    "browserify": "~3.24.13",
     "wd": "~0.2.8",
     "tin": "~0.4.0",
     "ncp": "~0.5.0",
@@ -63,11 +61,14 @@
     "cordova": "~3.4.1-0.1.0",
     "replace": "^0.2.9",
     "es5-shim": "^3.1.1",
-    "phantomjs": "^1.9.7-5"
+    "phantomjs": "^1.9.7-5",
+    "browserify": "^6.1.0",
+    "watchify": "^2.0.0",
+    "derequire": "^1.2.0"
   },
   "scripts": {
     "build-js": "npm run build-main-js && npm run min && npm run build-plugins",
-    "build-main-js": "browserify . -s PouchDB > dist/pouchdb.js",
+    "build-main-js": "browserify . -s PouchDB | derequire > dist/pouchdb.js",
     "min": "uglifyjs dist/pouchdb.js -mc > dist/pouchdb.min.js",
     "build-plugins": "./bin/build-all-plugins.sh",
     "build": "npm run version && mkdirp dist && npm run build-js && npm run license",