Registry / http-networking / rollup-plugin-node-builtins-brofs

rollup-plugin-node-builtins-brofs

JSON →
library2.1.3jsnpmunverified

A Rollup plugin that provides browser shims for Node.js built-in modules (fs, crypto, path, events, stream, etc.) to enable code designed for Node.js or Browserify to run in the browser. Version 2.1.3 is the current release, with sporadic maintenance. Its key differentiator is shimming a wide range of builtins (30+), some with ESM named exports, but many are partial mocks or circular-referenced (streams, http) preventing tree-shaking. Requires rollup-plugin-node-globals for some modules. Includes security fixes for RCE and memory exposure in browserify-fs fork.

npm install rollup-plugin-node-builtins-brofs
INSTALL
IMPORT
SIG · ROLLUP-PLUGIN-NODE
R
rollup-plugin-node-builtins-brofs
http-networkingjavascriptv2.1.3
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18223 runs
build_error
glibc
node 18223 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
import builtins from 'rollup-plugin-node-builtins'
const builtins = require('rollup-plugin-node-builtins')
Rollup plugins are ESM-only; CommonJS require works in Rollup config but not in bundling context.
EventEmitter
import EventEmitter from 'events'
const EventEmitter = require('events').EventEmitter
Named export works for ES6 compatible modules; default export also available.
inherits
import { inherits } from 'util'
import util from 'util'; util.inherits
Named import from 'util' works when ES6 module is used; commonjs pattern incorrect for ESM treeshaking.

Shows basic Rollup configuration using the plugin with optional globals plugin for modules like process and stream.

// rollup.config.js import builtins from 'rollup-plugin-node-builtins'; import globals from 'rollup-plugin-node-globals'; export default { input: 'main.js', output: { file: 'bundle.js', format: 'iife' }, plugins: [ globals(), builtins() ] };
Debug
Known issues
breakingRequires rollup-plugin-node-globals for many modules
fix
Add rollup-plugin-node-globals to plugins list before builtins.
affects: >=1.0.0
gotchastream, http, https have circular dependencies and cannot be tree-shaken
fix
Use named imports sparingly and avoid importing these modules unnecessarily.
affects: >=1.0.0
deprecatedOriginal browserify-fs had security vulnerabilities (CVE-2016-10697, CVE-2017-16116), replaced by bro-fs
fix
Update to v2.1.0+ which uses bro-fs.
affects: <2.1.0
gotchacrypto module is not properly shimmed; requires passing {crypto: true} option and may not work
fix
Avoid using crypto; pass {crypto: true} if needed, but expect limited functionality.
affects: >=1.0.0
gotchaModules marked with ∆ return mocks (no real functionality)
fix
Do not rely on dns, dgram, child_process, cluster, module, net, readline, repl, tls for real behavior.
affects: >=1.0.0
Errors
Common errors & fixes
Error: Module 'process' has been externalized for browser compatibility
Missing rollup-plugin-node-globals
fix
Install rollup-plugin-node-globals and add it to plugin list before builtins.
Uncaught ReferenceError: global is not defined
Missing global shim (from node-globals)
fix
Add rollup-plugin-node-globals plugin.
Module 'crypto' is not bundled: module not found
Rollup treats crypto as external; builtins plugin does not shim it by default
fix
Pass {crypto: true} option to builtins() or provide a custom shim.
Upgrade
Version history
2.1.3latest on npm
Audit
Dependencies
rollup-plugin-node-globalsoptionalRequired for modules like process, events, stream, buffer, url, etc.
Agent activity
7 hits · last 30 days
node
6
OpenAI (training)
1
Resources
rollup-plugin-node-builtins-brofs — npm install rollup-plugin-node-builtins-brofs · libregistry