Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取node js模块中使用的所有外部函数_Javascript_Node.js - Fatal编程技术网

Javascript 如何获取node js模块中使用的所有外部函数

Javascript 如何获取node js模块中使用的所有外部函数,javascript,node.js,Javascript,Node.js,给定一个NodeJS包,我可以找到它依赖的包。 对于每个依赖项,如何获取当前包使用的导出 示例:在javascript文件中,我有以下代码行 var async = require('async'); ...... async.mapSeries(files, function (entry, done) { ...... 我希望能够从async中提取出这个js使用mapSeries函数,例如,您可以相对轻松地使用esprima,但正如@DaveNewton所说,由于js的动态特性,以及导出可

给定一个NodeJS包,我可以找到它依赖的包。 对于每个依赖项,如何获取当前包使用的导出

示例:在javascript文件中,我有以下代码行

var async = require('async');
......
async.mapSeries(files, function (entry, done) {
......

我希望能够从async中提取出这个js使用mapSeries函数,例如,您可以相对轻松地使用esprima,但正如@DaveNewton所说,由于js的动态特性,以及导出可以以多种不同方式修改的事实,您可能会错过一些


您不仅需要运行完整的防弹列表代码,还需要以100%的覆盖率运行它。可能不是真正值得做的事。

Grep?用记录使用情况的东西包装模块中的所有内容?我想静态地这样做。Grep?问题是,如果静态地执行此操作,可能会丢失用法,因为async.mapSeries不是调用mapSeries的唯一方法。为了完全完成这项工作,您基本上需要运行代码。您能帮助我如何使用Esprima来完成这项工作吗?我尝试使用脚本化的/server/jsdepend/reference finder和findReferences函数。这只给了我需要和依赖的信息。它没有告诉我在外部依赖项上调用函数的位置。基本上,您需要解析文件,遍历AST,并找到对module.exports的任何使用分配。不是很短的代码,但不是很复杂。