ES6模块:递归获取依赖文件列表

时间:2016-05-28 05:58:49

标签: javascript ecmascript-6 rollupjs

我有main.js文件,它导入ES6模块,而这些模块又依赖于其他模块。我使用rollup.js将所有模块捆绑到单个文件中。

如何获取main.js所依赖的所有文件的列表?

我想在gulp.watch中使用此列表自动运行汇总任务,并在每次更改任何模块时更新捆绑包。我知道我可以看整个/ js目录,但有没有办法更具体?

1 个答案:

答案 0 :(得分:3)

bundle对象包含modules属性,该属性是表示其包含的模块的对象列表。所以如果你有这样的文件......

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

// src/foo.js
export default 42;

...你可以像这样获得ID:

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

您可以使用它来确定要观看的文件。