Что бы я использовал, чтобы найти, какие ресурсы требуются файлу NodeJS?
Например, если у меня есть файл с именем "file.js", содержащий это:
import x from './x';
const y = require('./y');
// Some more code
Как разобрать этот файл и извлечь "./x" и "./y"?
Зачем вам это делать?
Я играю с идеей архитектурного инструмента. Для этого я хочу знать, какие файлы требуются целевым исходным кодом.
Я знаю, что Webpack следует этой информации, когда он создает пакеты, чтобы он мог складывать нужные файлы в соответствующем порядке в одном объединенном (хорошо, минитизированном) файле.
Мне не нужно делать конкатенацию, но я хочу найти, какие файлы будут использоваться.
Когда я узнаю, какие файлы используются файлами, я планирую помочь пользователю организовать их упорядоченным образом (например, указав круговые зависимости).
Для тривиальных случаев вы можете попробовать подавать источник на некоторый парсер JS и искать AST для вызовов require()
; до тех пор, пока require()
вызывается с строковой константой в качестве параметра, определение зависимостей не должно быть трудным. Однако более сложные ситуации могут вызвать проблемы.