我使用this GULP plugin将HTML文件转换为ES6导出,因此我可以在我的MVC中使用浏览器(使用rollup bundler)加载它们。ES6导入模块作为对象
基本上我有页面控制器作为模块导出。
然后,在我的主要JS文件,我只是导入所有的页面控制器,一旦一个,像这样(简化):
import * as page__home from './pages/page1';
import * as page__home from './pages/page2';
...
因为这是一个SPA,我想它会更容易以某种方式将所有页面控制器导入到某个对象中,因此当控制器被调用时,我可以检查该对象是否存在于持有所有导入控制器的对象中,或类似的东西。
或者也许有一种方法来检查模块是否被导入? 有没有更聪明的方法来做到这一点?由于
这让我想起[从目录中的文件导入模块](http://stackoverflow.com/q/29722270/1048572),但我不确定它是重复还是仅仅是一个XY问题。 – Bergi
@Bergi - 我知道如何从一个目录中导入所有文件,那不是,我的意思是,让我们说代码中的某处,我希望某些模块可用,如何检查它是否已导入?可以说模块名称是动态的。所以它是''page__“+ someName' – vsync
如果模块名称确实是动态的,则需要使用动态导入和动态模块加载。如果导入的模块是静态的,就像使用'import'语法所暗示的那样,应该没有理由检查模块是否可用 - 所有导入的模块都可以按照定义使用(如果不是,则整个模块将失败)。 – Bergi