node-precinct
node-precinct copied to clipboard
require.resolve not being listed as a dependency
I'm trying to use this module in order to create a list of all the dependencies in use into my application.
However the require.resolve is not being listed as a dependency.
Any idea how to solve this @mrjoelkemp ?
Hey @mistic. Thanks for the issue! Can you provide an example of how you're using require.resolve?
Based on my assumptions on how you're using it, we'd need to add support for it in the commonjs detective. I could definitely see your future example being a test case here: https://github.com/dependents/node-detective-cjs/blob/master/test/test.js#L33.
Here is where we sniff for require(): https://github.com/dependents/node-detective-cjs/blob/master/index.js#L13-L26. You could add support for require.resolve there by looking for a resolve function call that's an attribute of a require object.
If you're unfamiliar with ASTs, you're basically iterating through the keys in a big object and looking for a particular part of it (if it exists). Here's a good tool for seeing the AST representation of some code to look for the part of the object that represents require.resolve(''): https://astexplorer.net/#/gist/ed8f609760da184363377d975063552b/45f0e4dae0e876853a9997fde5faeeb7137e4746.
I'm super open to a PR in node-detective-cjs with the fix.
Hey @mistic. Similar support was recently added by a contributor for supporting require.main.require. That (https://github.com/dependents/node-precinct/issues/47) could be a good starting point if you or another contributor would like to address this issue.