try to fix commonjs
diff --git a/bin/build-module.js b/bin/build-module.js
index 3a75ed1..4fca5e3 100755
--- a/bin/build-module.js
+++ b/bin/build-module.js
@@ -8,6 +8,7 @@
 
 var rollup = require('rollup').rollup;
 var nodeResolve = require('rollup-plugin-node-resolve');
+var commonjs = require('rollup-plugin-commonjs');
 
 var path = require('path');
 var lie = require('lie');
@@ -25,10 +26,9 @@
 
   // All external modules are assumed to be CommonJS, and therefore should
   // be skipped by Rollup. We may revisit this later.
-  var depsToSkip = Object.keys(pkg.dependencies || {});
-  depsToSkip = depsToSkip.concat([
-    'crypto', 'fs', 'events', 'path'
-  ]);
+  var depsToSkip = [
+    'crypto', 'fs', 'events', 'path', 'pouchdb'
+  ];
 
   if (pkg.name === 'pouchdb-for-coverage') {
     // special case - for the coverage reports, the whole thing is
@@ -62,6 +62,11 @@
             skip: depsToSkip,
             jsnext: true,
             browser: isBrowser || forceBrowser
+          }),
+          commonjs({
+            exclude: [
+              'packages/**/src/**'
+            ]
           })
         ]
       }).then(function (bundle) {
@@ -80,5 +85,8 @@
     }));
   });
 }
-
-module.exports = buildModule;
\ No newline at end of file
+if (require.main === module) {
+  buildModule(process.argv[process.argv.length - 1]).catch(console.error);
+} else {
+  module.exports = buildModule;
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 60f5513..e97346c 100644
--- a/package.json
+++ b/package.json
@@ -65,6 +65,7 @@
     "replace": "0.3.0",
     "rimraf": "2.5.2",
     "rollup": "0.26.3",
+    "rollup-plugin-commonjs": "2.2.1",
     "rollup-plugin-node-resolve": "1.5.0",
     "sauce-connect-launcher": "0.14.0",
     "seedrandom": "2.4.2",
diff --git a/packages/pouchdb-adapter-fruitdown/src/index.js b/packages/pouchdb-adapter-fruitdown/src/index.js
index f706158..27e165e 100644
--- a/packages/pouchdb-adapter-fruitdown/src/index.js
+++ b/packages/pouchdb-adapter-fruitdown/src/index.js
@@ -1,6 +1,6 @@
 import CoreLevelPouch from 'pouchdb-adapter-leveldb-core';
 import { toPromise } from 'pouchdb-utils';
-import { extend as extend } from 'js-extend';
+import jsExtend from 'js-extend';\nvarextend = jsExtend.extend;
 
 import fruitdown from 'fruitdown';
 
diff --git a/packages/pouchdb-adapter-http/src/index.js b/packages/pouchdb-adapter-http/src/index.js
index 5a22df6..b018aa7 100644
--- a/packages/pouchdb-adapter-http/src/index.js
+++ b/packages/pouchdb-adapter-http/src/index.js
@@ -10,7 +10,7 @@
 // TODO: we could measure the full URL to enforce exactly 2000 chars
 var MAX_URL_LENGTH = 1800;
 
-import { extend as extend } from 'js-extend';
+import jsExtend from 'js-extend'; var extend = jsExtend.extend;
 import Promise from 'pouchdb-promise';
 import ajaxCore from 'pouchdb-ajax';
 import getArguments from 'argsarray';
diff --git a/packages/pouchdb-adapter-indexeddb/src/utils.js b/packages/pouchdb-adapter-indexeddb/src/utils.js
index 2490486..d330656 100644
--- a/packages/pouchdb-adapter-indexeddb/src/utils.js
+++ b/packages/pouchdb-adapter-indexeddb/src/utils.js
@@ -1,4 +1,4 @@
-import { extend as extend } from 'js-extend';
+import jsExtend from 'js-extend'; var extend = jsExtend.extend;
 import Promise from 'pouchdb-promise';
 import { createError, IDB_ERROR } from 'pouchdb-errors';
 import {
diff --git a/packages/pouchdb-adapter-leveldb/src/index.js b/packages/pouchdb-adapter-leveldb/src/index.js
index 77f26fc..a191e3d 100644
--- a/packages/pouchdb-adapter-leveldb/src/index.js
+++ b/packages/pouchdb-adapter-leveldb/src/index.js
@@ -1,6 +1,6 @@
 import CoreLevelPouch from 'pouchdb-adapter-leveldb-core';
 import { toPromise } from 'pouchdb-utils';
-import { extend as extend } from 'js-extend';
+import jsExtend from 'js-extend'; var extend = jsExtend.extend;
 import requireLeveldown from './requireLeveldown';
 
 var leveldown = requireLeveldown();
diff --git a/packages/pouchdb-adapter-localstorage/src/index.js b/packages/pouchdb-adapter-localstorage/src/index.js
index 1ff0229..753d7d0 100644
--- a/packages/pouchdb-adapter-localstorage/src/index.js
+++ b/packages/pouchdb-adapter-localstorage/src/index.js
@@ -1,6 +1,6 @@
 import CoreLevelPouch from 'pouchdb-adapter-leveldb-core';
 import { toPromise } from 'pouchdb-utils';
-import { extend as extend } from 'js-extend';
+import jsExtend from 'js-extend'; var extend = jsExtend.extend;
 
 import localstoragedown from 'localstorage-down';
 
diff --git a/packages/pouchdb-adapter-memory/src/index.js b/packages/pouchdb-adapter-memory/src/index.js
index 10a00c0..7aff4e8 100644
--- a/packages/pouchdb-adapter-memory/src/index.js
+++ b/packages/pouchdb-adapter-memory/src/index.js
@@ -1,6 +1,6 @@
 import CoreLevelPouch from 'pouchdb-adapter-leveldb-core';
 import { toPromise } from 'pouchdb-utils';
-import { extend as extend } from 'js-extend';
+import jsExtend from 'js-extend'; var extend = jsExtend.extend;
 
 import memdown from 'memdown';
 
diff --git a/packages/pouchdb-adapter-node-websql/src/index.js b/packages/pouchdb-adapter-node-websql/src/index.js
index 0d5d8d6..a9a0858 100644
--- a/packages/pouchdb-adapter-node-websql/src/index.js
+++ b/packages/pouchdb-adapter-node-websql/src/index.js
@@ -1,5 +1,5 @@
 import WebSqlPouch from 'pouchdb-adapter-websql';
-import { extend } from 'js-extend';
+import jsExtend from 'js-extend'; var extend = jsExtend.extend;
 import websql from 'websql';
 
 function NodeWebSqlPouch(opts, callback) {
diff --git a/packages/pouchdb-adapter-websql-core/src/index.js b/packages/pouchdb-adapter-websql-core/src/index.js
index 718f24d..3e53523 100644
--- a/packages/pouchdb-adapter-websql-core/src/index.js
+++ b/packages/pouchdb-adapter-websql-core/src/index.js
@@ -1,4 +1,4 @@
-import { extend } from 'js-extend';
+import jsExtend from 'js-extend'; var extend = jsExtend.extend;
 import {
   clone,
   uuid,
diff --git a/packages/pouchdb-adapter-websql/src/index.js b/packages/pouchdb-adapter-websql/src/index.js
index 75e413a..75bff4e 100644
--- a/packages/pouchdb-adapter-websql/src/index.js
+++ b/packages/pouchdb-adapter-websql/src/index.js
@@ -1,5 +1,5 @@
 import WebSqlPouchCore from 'pouchdb-adapter-websql-core';
-import { extend as extend } from 'js-extend';
+import jsExtend from 'js-extend'; var extend = jsExtend.extend;
 
 function websql(optsOrName, version, description, size) {
   if (typeof sqlitePlugin !== 'undefined') {
diff --git a/packages/pouchdb-ajax/src/ajaxCore.js b/packages/pouchdb-ajax/src/ajaxCore.js
index 23e61d3..b8045bf 100644
--- a/packages/pouchdb-ajax/src/ajaxCore.js
+++ b/packages/pouchdb-ajax/src/ajaxCore.js
@@ -1,5 +1,5 @@
 import request from './request';
-import { extend as extend } from 'js-extend';
+import jsExtend from 'js-extend'; var extend = jsExtend.extend;
 import { generateErrorFromResponse } from 'pouchdb-errors';
 import { clone } from 'pouchdb-utils';
 import applyTypeToBuffer from './applyTypeToBuffer';
diff --git a/packages/pouchdb-browser/src/index.js b/packages/pouchdb-browser/src/index.js
index ac6f002..8c21240 100644
--- a/packages/pouchdb-browser/src/index.js
+++ b/packages/pouchdb-browser/src/index.js
@@ -1,15 +1,8 @@
 import PouchDB from 'pouchdb-core';
 
-import IDBPouch from 'pouchdb-adapter-indexeddb';
-import WebSqlPouch from 'pouchdb-adapter-websql';
 import HttpPouch from 'pouchdb-adapter-http';
-import mapreduce from 'pouchdb-mapreduce';
-import replication from 'pouchdb-replication';
 
-PouchDB.plugin(IDBPouch)
-  .plugin(WebSqlPouch)
+PouchDB
   .plugin(HttpPouch)
-  .plugin(mapreduce)
-  .plugin(replication);
 
-export default PouchDB;
\ No newline at end of file
+export default PouchDB;
diff --git a/packages/pouchdb-core/src/adapter.js b/packages/pouchdb-core/src/adapter.js
index 831f995..a59a116 100644
--- a/packages/pouchdb-core/src/adapter.js
+++ b/packages/pouchdb-core/src/adapter.js
@@ -1,4 +1,4 @@
-import { extend as extend } from 'js-extend';
+import jsExtend from 'js-extend'; var extend = jsExtend.extend;
 import Promise from 'pouchdb-promise';
 import { Map } from 'pouchdb-collections';
 import getArguments from 'argsarray';
diff --git a/packages/pouchdb-core/src/setup.js b/packages/pouchdb-core/src/setup.js
index e2522e0..08aa425 100644
--- a/packages/pouchdb-core/src/setup.js
+++ b/packages/pouchdb-core/src/setup.js
@@ -1,4 +1,4 @@
-import { extend as extend } from 'js-extend';
+import jsExtend from 'js-extend'; var extend = jsExtend.extend;
 
 import PouchDB from "./constructor";
 import inherits from 'inherits';
diff --git a/packages/pouchdb-for-coverage/src/utils.js b/packages/pouchdb-for-coverage/src/utils.js
index 1485b46..1f6d174 100644
--- a/packages/pouchdb-for-coverage/src/utils.js
+++ b/packages/pouchdb-for-coverage/src/utils.js
@@ -37,7 +37,7 @@
 
 import { createError } from 'pouchdb-errors';
 
-import { extend } from 'js-extend';
+import jsExtend from 'js-extend'; var extend = jsExtend.extend;
 
 import generateReplicationId from 'pouchdb-generate-replication-id';
 import checkpointer from 'pouchdb-checkpointer';
diff --git a/packages/pouchdb-replication/src/sync.js b/packages/pouchdb-replication/src/sync.js
index 5989c89..1d2440c 100644
--- a/packages/pouchdb-replication/src/sync.js
+++ b/packages/pouchdb-replication/src/sync.js
@@ -1,4 +1,4 @@
-import { extend as extend } from 'js-extend';
+import jsExtend from 'js-extend'; var extend = jsExtend.extend;
 import Promise from 'pouchdb-promise';
 import {
   replicate,