Модули 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'
// }]
});
Вы можете использовать это, чтобы определить, какие файлы смотреть.