Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

--no-browser-field and --node #1240

Merged
3 commits merged into from
May 4, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
11 changes: 10 additions & 1 deletion bin/advanced.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,15 @@ Advanced Options:
to just "__filename,__dirname". This is handy if you want to run bundles in
node.

--no-browser-field, --no-bf

Turn off package.json browser field resolution. This is also handy if you
need to run a bundle in node.

--node

Alias for --bare and --no-browser-field.

--full-paths

Turn off converting module ids into numerical indexes. This is useful for
Expand All @@ -70,7 +79,7 @@ Advanced Options:
Consider files with specified EXTENSION as modules, this option can used
multiple times.

--global-transform=MODULE, --g MODULE
--global-transform=MODULE, -g MODULE

Use a transform module on all files after any ordinary transforms have run.

Expand Down
13 changes: 11 additions & 2 deletions bin/args.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@ module.exports = function (args, opts) {
var argv = subarg(args, {
'boolean': [
'deps', 'pack', 'ig', 'dg', 'im', 'd', 'list', 'builtins',
'commondir', 'bare', 'full-paths', 'bundle-external'
'commondir', 'bare', 'full-paths', 'bundle-external', 'bf',
'node'
],
string: [ 's', 'r', 'u', 'x', 't', 'i', 'o', 'e', 'c', 'it' ],
alias: {
ig: [ 'insert-globals', 'fast' ],
dg: [ 'detect-globals', 'detectGlobals', 'dg' ],
bf: [ 'browser-field', 'browserField ' ],
im: 'ignore-missing',
it: 'ignore-transform',
igv: 'insert-global-vars',
Expand All @@ -43,7 +45,9 @@ module.exports = function (args, opts) {
d: false,
builtins: true,
commondir: true,
'bundle-external': true
'bundle-external': true,
bf: true,
node: false
}
});

Expand All @@ -60,6 +64,10 @@ module.exports = function (args, opts) {
return path.resolve(process.cwd(), entry);
});

if (argv.node) {
argv.bare = true;
argv.browserField = false;
}
if (argv.bare) {
argv.builtins = false;
argv.commondir = false;
Expand All @@ -80,6 +88,7 @@ module.exports = function (args, opts) {
commondir: argv.commondir === false ? false : undefined,
bundleExternal: argv['bundle-external'],
basedir: argv.basedir,
browserField: argv.browserField,

detectGlobals: argv.detectGlobals,
insertGlobals: argv['insert-globals'] || argv.ig,
Expand Down
9 changes: 8 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,13 @@ function Browserify (files, opts) {
self._transforms = [];
self._entryOrder = 0;
self._ticked = false;
self._bresolve = opts.browserField === false
? function (id, opts, cb) {
if (!opts.basedir) opts.basedir = path.dirname(opts.filename)
resolve(id, opts, cb)
}
: bresolve
;

var ignoreTransform = [].concat(opts.ignoreTransform).filter(Boolean);
self._filterTransform = function (tr) {
Expand Down Expand Up @@ -447,7 +454,7 @@ Browserify.prototype._createDeps = function (opts) {
mopts.resolve = function (id, parent, cb) {
if (self._ignore.indexOf(id) >= 0) return cb(null, paths.empty, {});

bresolve(id, parent, function (err, file, pkg) {
self._bresolve(id, parent, function (err, file, pkg) {
if (file && self._ignore.indexOf(file) >= 0) {
return cb(null, paths.empty, {});
}
Expand Down
14 changes: 9 additions & 5 deletions readme.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,15 @@ Advanced Options:
to just "__filename,__dirname". This is handy if you want to run bundles in
node.

--no-browser-field, --no-bf

Turn off package.json browser field resolution. This is also handy if you
need to run a bundle in node.

--node

Alias for --bare and --no-browser-field.

--full-paths

Turn off converting module ids into numerical indexes. This is useful for
Expand All @@ -178,11 +187,6 @@ Advanced Options:
Consider files with specified EXTENSION as modules, this option can used
multiple times.

--ignore-transform=MODULE, --it MODULE

Any transforms matching the given name will be ignored, including
those in your module dependencies.

--global-transform=MODULE, -g MODULE

Use a transform module on all files after any ordinary transforms have run.
Expand Down
21 changes: 21 additions & 0 deletions test/ignore_browser_field.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
var test = require('tap').test;
var browserify = require('../');
var path = require('path');
var mainfile = path.join(__dirname, 'ignore_browser_field/main.js');
var vm = require('vm');

test('ignore browser field', function (t) {
t.plan(3);
var b = browserify(mainfile, { browserField: false });
var expected = [ 'A:NODE', 'B:X.JS' ];

b.bundle(function (err, src) {
t.ifError(err);
var c = { console: { log: log } };
vm.runInNewContext(src, c);

function log (msg) {
t.equal(msg, expected.shift());
}
});
});
2 changes: 2 additions & 0 deletions test/ignore_browser_field/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
console.log(require('a'));
console.log(require('b'));
1 change: 1 addition & 0 deletions test/ignore_browser_field/node_modules/a/browser.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions test/ignore_browser_field/node_modules/a/main.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions test/ignore_browser_field/node_modules/a/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions test/ignore_browser_field/node_modules/b/browser-x.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions test/ignore_browser_field/node_modules/b/main.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions test/ignore_browser_field/node_modules/b/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions test/ignore_browser_field/node_modules/b/x.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.