browser-builtins

Builtins that were extracted from node-browser-resolve on which browserify depends

Browser altenatives to built-in node.js modules

This is used by browserify module. Initially these files were in node-browser-resolve but disappeared in v1.0.1 which broke browserify dependency. This module is that missing dependency.

  • Safari: latest
  • Chrome: latest
  • Firefox: latest
  • Opera: latest
  • Internet Explore: 10, 11

This decision behind not supporting legacy browsers was made to reduce the maintenance and allow usage of more advanced browser features such as TypedArrays. Please do not supply pull requests there adds support for legacy browsers. Instead we recommend that you use the necessary polyfills for legacy browser support. Should you be willing to start your own complete browser-builtins polyfills project, then feel free to contact us for tips and hints.

Requireing this module gives you a simple map between the modulename and a filepath to the module containing the shim. You can then point to these files in your pseudo-node implementation. Note that beyond the nodecore modules there is also a process module, there mimics global.process in node.

require('browser-builtins');
{
  assert: '/user/node_modules/browser-builtins/builtin/assert.js',
  child_process: '/user/node_modules/browser-builtins/builtin/child_process.js',
  cluster: '/user/node_modules/browser-builtins/builtin/cluster.js',
  dgram: '/user/node_modules/browser-builtins/builtin/dgram.js',
  dns: '/user/node_modules/browser-builtins/builtin/dns.js',
  domain: '/user/node_modules/browser-builtins/builtin/domain.js',
  events: '/user/node_modules/browser-builtins/builtin/events.js',
  fs: '/user/node_modules/browser-builtins/builtin/fs.js',
  https: '/user/node_modules/browser-builtins/builtin/https.js',
  net: '/user/node_modules/browser-builtins/builtin/net.js',
  path: '/user/node_modules/browser-builtins/builtin/path.js',
  process: '/user/node_modules/browser-builtins/builtin/process.js',
  querystring: '/user/node_modules/browser-builtins/builtin/querystring.js',
  readline: '/user/node_modules/browser-builtins/builtin/readline.js',
  repl: '/user/node_modules/browser-builtins/builtin/repl.js',
  stream: '/user/node_modules/browser-builtins/builtin/stream.js',
  string_decoder: '/user/node_modules/browser-builtins/builtin/string_decoder.js',
  sys: '/user/node_modules/browser-builtins/builtin/sys.js',
  timers: '/user/node_modules/browser-builtins/builtin/timers.js',
  tls: '/user/node_modules/browser-builtins/builtin/tls.js',
  tty: '/user/node_modules/browser-builtins/builtin/tty.js',
  url: '/user/node_modules/browser-builtins/builtin/url.js',
  util: '/user/node_modules/browser-builtins/builtin/util.js',
  punycode: '/user/node_modules/browser-builtins/node_modules/punycode/punycode.js',
  http: '/user/node_modules/browser-builtins/node_modules/http-browserify/index.js',
  vm: '/user/node_modules/browser-builtins/node_modules/vm-browserify/index.js',
  crypto: '/user/node_modules/browser-builtins/node_modules/crypto-browserify/index.js',
  console: '/user/node_modules/browser-builtins/node_modules/console-browserify/index.js',
  zlib: '/user/node_modules/browser-builtins/node_modules/zlib-browserify/index.js',
  buffer: '/user/node_modules/browser-builtins/node_modules/buffer/index.js',
  constants: '/user/node_modules/browser-builtins/node_modules/constants-browserify/constants.json',
  os: '/user/node_modules/browser-builtins/node_modules/os-browserify/browser.js'
}

When fixing a bug please check the following:

  1. Check that the bug do not exist in node and fix it there first
  2. Check that updating the code from the node source dosn't fix it
  3. It must be a browser issue, fix it here. But do please link to the browser bug report

node-browser-builtins uses zuul for client side testing. In summary, all you will need is a Saucelabs account (free one will work just fine). To get up and running with it, please follow zuul instructions.

Finally, just run:

npm test
  1. "Forked" from node-browser-resolve, originally written by Roman Shtylman (@shtylman).
  2. Major update to node v0.10 and tests (@AndreasMadsen)
  3. no legacy browser support (IE10+)