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
muslnode 18–226 runs
build_error
glibcnode 18–226 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
__Rewire__
✓ import myModule from 'my-module'; myModule.__Rewire__('dep', mock)
✗ const myModule = require('my-module'); myModule.__Rewire__('dep', mock)
Works with both ESM and CJS after plugin transforms code.
__ResetDependency__
✓ myModule.__ResetDependency__('dep')
Resets a specific dependency to its original value.
__GetDependency__
✓ const dep = myModule.__GetDependency__('dep')
Gets the current value of a dependency.
__set__
✓ myModule.__set__('dep', mock)
Compatibility alias for rewire.js; returns a revert function since v1.0.0-rc-7.
__RewireAPI__
✓ import { __RewireAPI__ } from 'my-module'; __RewireAPI__.__Rewire__('dep', mock)
Exported as named export and on default export (for non-primitive defaults).
default export rewiring
✓ import DefaultExport from 'my-module'; DefaultExport.__Rewire__('dep', mock)
✗ import * as mod from 'my-module'; mod.default.__Rewire__('dep', mock)
For primitive default exports, methods are not attached; use __RewireAPI__ instead.
Basic configuration and usage of babel-plugin-rewire: define module, rewire function, call, reset.
// babel.config.js
module.exports = {
plugins: [['babel-plugin-rewire', { 'rewire': { 'exclude': /node_modules/ } }]]
};
// myModule.js
export function greet(name) {
return `Hello ${name}`;
}
// test.js
import myModule from './myModule';
myModule.__Rewire__('greet', (name) => `Hi ${name}`);
const result = myModule.greet('World');
console.log(result); // 'Hi World'
myModule.__ResetDependency__('greet');
console.log(myModule.greet('World')); // 'Hello World'
Errors
Common errors & fixes
__Rewire__ is not a function
Module not transformed by babel-plugin-rewire or imported as CJS before transformation.
fixEnsure the module is processed by Babel with the plugin. For Node tests, use @babel/register or equivalent.
Cannot find module 'babel-plugin-rewire'
Plugin not installed or missing from node_modules.
fixRun: npm install --save-dev babel-plugin-rewire
Cannot assign to read only property '__Rewire__' of object '#<Object>'
Using strict mode or frozen object; plugin cannot attach methods to immutable default exports.
fixUse __RewireAPI__ instead or avoid freezing exports.
Cannot rewire a dependency that is not explicitly imported in module.
Plugin can only rewire dependencies that are statically analyzable in the module source (import/require at top level).
fixEnsure the dependency is imported at module top level.
Audit
Dependencies
@babel/corerequiredRequired as peer dependency to transform code