Модули ES6: рекурсивно получить список файлов зависимостей

У меня есть файл main.js, который импортирует модули ES6, которые, в свою очередь, также зависят от других модулей. И я использую rollup.js для объединения всех модулей в один файл.

Как получить список всех файлов, от которых зависит мой main.js?

Я хочу использовать этот список в gulp.watch для автоматического запуска задачи накопления и обновления пакета каждый раз, когда любой из модулей был изменен. Я знаю, что могу посмотреть весь каталог /js, но есть ли способ быть более конкретным?

1 ответ

bundle объект содержит modules свойство, представляющее собой список объектов, представляющих содержащиеся в нем модули. Так что если у вас есть такие файлы...

// src/main.js
import foo from './foo.js';
console.log( foo );

// src/foo.js
export default 42;

... вы можете получить идентификаторы так:

rollup.rollup({
  entry: 'src/main.js'
}).then( bundle => {
  console.log( bundle.modules );
  // [{
  //   id: 'path/to/src/main.js'
  // },{
  //   id: 'path/to/src/foo.js'
  // }]
});

Вы можете использовать это, чтобы определить, какие файлы смотреть.

Другие вопросы по тегам