remove require statements without breaking scope
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin fix version Dec 16, 2016
test With es8 tests May 23, 2018
index.js Bump ES6 to ES8 May 23, 2018 add license, fixes #31 Nov 11, 2015
package.json make sure we have up to date deps May 24, 2018
plugin.js Fix browserify plugin when called with default opts Oct 25, 2015 Further document the CLI. Apr 6, 2016

derequire Build Status

npm install derequire

derequire can be used either as a JavaScript API or as a CLI.

JavaScript API

var derequire = require('derequire');
var transformedCode = derequire(code, /*tokenTo=*/'_dereq_', /*tokenFrom=*/'require');

derequire takes a string of code and replaces all instances of the tokenFrom identifier (defaults to 'require') and replaces them with the tokenTo identifier (defaults to '_dereq_') but only if they are functional arguments or variable declarations and subsequent uses of said argument, then returnes the code.

For multiple renames at the same time, the following syntax is accepted:

derequire(code, [
    from: 'require',
    to: '_dereq_'
    from: 'define',
    to: '_defi_'

Note: In order to avoid quite a few headaches the token you're changing from and the token you're changing to need to be the same length.

Command-line API

There's a CLI that accepts a file path as an argument (absolute or relative to CWD) or reads from stdin if file path is - or omitted, and accepts -f|--from and -t|--to options that correspond to the API tokenFrom and tokenTo options. Examples:

derequire input.js > output.js
derequire < input.js > output.js
browserify input.js | derequire > output.js
browserify input.js | derequire - > output.js
derequire input.js --from require --to _gonzo_ > output.js