Browserify is a JavaScript bundler that enables developers to use Node.js-style `require()` statements in client-side browser code. It recursively analyzes the `require()` calls in an application to build a single JavaScript bundle that can be served to the browser. As of April 2026, the current stable version is 17.0.1, with releases occurring periodically to address dependency updates and bug fixes, rather than a strict time-based cadence. Its key differentiator is its adherence to the CommonJS module system for the browser, allowing direct reuse of many npm modules originally written for Node.js, offering an alternative to modern ESM-focused bundlers like Webpack or Rollup for projects that prefer or are built around the CommonJS paradigm. It handles core Node.js built-in modules by providing browser-compatible polyfills.
npm install browserifyVerified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates programmatically bundling a simple application with `browserify`, showing how it resolves internal `require()` calls and outputs a single JavaScript file. It creates hypothetical module files and then bundles `main.js` into `bundle.js`.
Review any custom logic interacting with `EventEmitter` or `stream` polyfills. Update code to be compatible with Node.js 10+ stream API or `events` v3.x.
If IE10 or older browser support is critical, either pin Browserify to a version prior to 16.4.0 (e.g., 16.3.0) or implement custom polyfills/workarounds for HTTP/HTTPS functionality for those specific environments.
Only use `--noparse` for files that are truly self-contained or explicitly global, and do not contain internal `require()` statements that Browserify needs to resolve. Verify that all dependencies of `noparse`d files are either globally available or included through other means.
Be aware that Browserify's polyfills aim for a baseline compatibility. For specific, cutting-edge Node.js API features, consider if a custom polyfill or an alternative bundling approach is necessary. Always test your bundled code thoroughly in target browser environments.
Ensure the module is installed (e.g., `npm install some-module`) and correctly referenced with its package name or a valid relative/absolute path. Check for typos in the `require()` path.
Use the `--insert-globals` (`--ig`) or `--detect-globals` (`--dg`) options when bundling via CLI, or `insertGlobals: true` / `detectGlobals: true` in programmatic options, to ensure Browserify adds polyfills for Node.js globals like `process`.
Ensure global insertion or detection is enabled via `--insert-globals` / `--detect-globals` CLI options or programmatic `insertGlobals: true` / `detectGlobals: true` options. Browserify's default behavior usually includes `Buffer` polyfills, so check if any transforms or configurations are interfering.
If installed locally in a project, use `npx browserify` (recommended). To make `browserify` available globally, run `npm install -g browserify`.
No dependency data recorded yet.