2016-05-28 3 views
2

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

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

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

+0

Лучший вариант для Rollup для реализации этого: https://github.com/rollup/rollup/issues/284 Это тот, который знает, какие файлы зависят от того, что. – loganfsmyth

ответ

3

Объект 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' 
    // }] 
}); 

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

Смежные вопросы