diff --git a/index.js b/index.js index 54dcf2c6e..858a0cbbf 100644 --- a/index.js +++ b/index.js @@ -83,12 +83,19 @@ function Browserify (files, opts) { self._transforms = []; self._entryOrder = 0; self._ticked = false; - self._bresolve = opts.browserField === false + + var browserField = opts.browserField + self._bresolve = browserField === false ? function (id, opts, cb) { if (!opts.basedir) opts.basedir = path.dirname(opts.filename) resolve(id, opts, cb) } - : bresolve + : typeof browserField === 'string' + ? function (id, opts, cb) { + opts.browser = browserField + bresolve(id, opts, cb) + } + : bresolve ; self._syntaxCache = {}; diff --git a/readme.markdown b/readme.markdown index 7d6f87e62..87ee6d925 100644 --- a/readme.markdown +++ b/readme.markdown @@ -447,7 +447,9 @@ useful for preserving the original paths that a bundle was generated with. `opts.bundleExternal` boolean option to set if external modules should be bundled. Defaults to true. -When `opts.browserField` is false, the package.json browser field will be ignored. +When `opts.browserField` is false, the package.json browser field will be +ignored. When `opts.browserField` is set to a `string`, then a custom field name +can be used instead of the default `"browser"` field. When `opts.insertGlobals` is true, always insert `process`, `global`, `__filename`, and `__dirname` without analyzing the AST for faster builds but