Как вручную разобрать NodeJS и определить нужные файлы

1

Что бы я использовал, чтобы найти, какие ресурсы требуются файлу NodeJS?

Например, если у меня есть файл с именем "file.js", содержащий это:

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

// Some more code

Как разобрать этот файл и извлечь "./x" и "./y"?

Зачем вам это делать?

Я играю с идеей архитектурного инструмента. Для этого я хочу знать, какие файлы требуются целевым исходным кодом.

Я знаю, что Webpack следует этой информации, когда он создает пакеты, чтобы он мог складывать нужные файлы в соответствующем порядке в одном объединенном (хорошо, минитизированном) файле.

Мне не нужно делать конкатенацию, но я хочу найти, какие файлы будут использоваться.

Когда я узнаю, какие файлы используются файлами, я планирую помочь пользователю организовать их упорядоченным образом (например, указав круговые зависимости).

  • 2
    В идеале это никогда не должно быть необходимым. Если вы написали файл file.js, вы должны были установить все модули, необходимые для этого файла, и если кто-то еще написал файл file.js, он должен был создать модуль с файлом package.json, который снова перечисляет все зависимости. Почему ты должен это сделать? Просто убедившись, что это не проблема XY
  • 0
    Я обновил пост, чтобы ответить на это.
Теги:

1 ответ

1
Лучший ответ

Для тривиальных случаев вы можете попробовать подавать источник на некоторый парсер JS и искать AST для вызовов require(); до тех пор, пока require() вызывается с строковой константой в качестве параметра, определение зависимостей не должно быть трудным. Однако более сложные ситуации могут вызвать проблемы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню