如何手动解析NodeJS并识别所需的文件

时间:2017-09-22 16:37:27

标签: javascript node.js

我将使用什么来查找NodeJS文件所需的资源?

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

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

// Some more code

如何解析该文件并提取' ./ x'和' ./ y'?

你为什么要这样做?

我正在玩建筑工具的想法。为此,我想知道目标源代码所需的文件。

我知道Webpack在创建bundle时会遵循这些信息,因此它可以在一个连接的(良好的,缩小的)文件中以适当的顺序堆叠所需的文件。

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

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

1 个答案:

答案 0 :(得分:1)

对于琐碎的情况,您可以尝试将源提供给某些JS parser并搜索AST以获取对require()的调用;只要使用字符串常量作为参数调用require(),就不应该很难确定依赖关系。但是,更复杂的情况可能会导致问题。