我如何手动parsingNodeJS并识别所需的文件

我会用什么来查找NodeJS文件需要哪些资源?

例如,如果我有一个名为“file.js”的文件包含这个:

import x from './x'; const y = require('./y'); // Some more code 

如何parsing该文件并提取“./x”和“./y”?

你为什么要这样做?

我正在玩一个build筑工具的想法。 要做到这一点,我想知道目标源代码需要哪些文件。

我知道Webpack在创buildbundle时遵循这些信息,所以它可以在一个连接的(精简的)文件中以合适的顺序堆叠所需的文件。

我不需要进行连接,但我想要find哪些文件将被使用。

当我发现哪些文件正在被哪些文件使用时,我计划帮助用户有序地组织它们(例如通过指出循环依赖)。

对于微不足道的情况,你可以尝试将源代码馈送给某个JSparsing器,并searchAST以调用require() ; 只要用一个string常量调用require()作为参数,就不难确定依赖关系。 不过,更复杂的情况可能会导致问题。