find-requires
v1.0.0
Published
Find all require() calls. Fast and solid implementation backed with direct scanner and esprima AST parser
Downloads
3,926,386
Maintainers
Readme
find-requires – Find all require() calls.
Made for modules-webmake. Fast esniff based implementation of require calls parser.
Example
foo.js:
var one = require("one");
var two = require("two");
var slp = require("some/long" + "/path");
var wrong = require(cannotTakeThat);
program.js:
var fs = require("fs");
var findRequires = require("find-requires");
var src = fs.readFileSync("foo.js", "utf-8");
console.log(findRequires(src)); // => ['one', 'two', 'some/long/path'];
// or we can get more detailed data with `raw` option:
console.log(findRequires(src, { raw: true })); /* => [
{ value: 'one', raw: '\'one\'', point: 19, line: 1, column: 19 },
{ value: 'two', raw: '\'two\'', point: 45, line: 2, column: 19 },
{ value: 'some/long/path', raw: '\'some/long\' +\n\t\t\t\t\t\t\'/path\'',
point: 71, line: 3, column: 19 },
{ raw: 'cannotTakeThat', point: 121, line: 5, column: 21 }
] */
// We can also ensure some specific cases of dynamic requires code with some setup code injection
console.log(
findRequires("require(__dirname + '/foo.js')", {
setupCode: `const __dirname = ${ JSON.stringify(__dirname) }`
})
);
CLI Example
> npm install -g find-requires
Find all requires in a file:
> find-requires file1.js
test1.js:3:LIB + '/test2'
test1.js:4:fs
Find all places the fs module is required: find-requires -m fs $(find . -name '*.js')
Tests
$ npm test