2015-10-25 182 views
3

我使用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,我想它會更容易以某種方式將所有頁面控制器導入到某個對象中,因此當控制器被調用時,我可以檢查該對象是否存在於持有所有導入控制器的對象中,或類似的東西。

或者也許有一種方法來檢查模塊是否被導入? 有沒有更聰明的方法來做到這一點?由於

+0

這讓我想起[從目錄中的文件導入模塊](http://stackoverflow.com/q/29722270/1048572),但我不確定它是重複還是僅僅是一個XY問題。 – Bergi

+0

@Bergi - 我知道如何從一個目錄中導入所有文件,那不是,我的意思是,讓我們說代碼中的某處,我希望某些模塊可用,如何檢查它是否已導入?可以說模塊名稱是動態的。所以它是''page__「+ someName' – vsync

+0

如果模塊名稱確實是動態的,則需要使用動態導入和動態模塊加載。如果導入的模塊是靜態的,就像使用'import'語法所暗示的那樣,應該沒有理由檢查模塊是否可用 - 所有導入的模塊都可以按照定義使用(如果不是,則整個模塊將失敗)。 – Bergi

回答

1

正如上面指出:

我想我明白了其實,我將結合使用一飲而盡所有控制器中的文件,然後導入一個文件,它都將是該命名空間下,像這樣的進口*爲'./pages/bundle'中的頁面;那麼我可以檢查是否(網頁[「xxx」])

+0

您引用我自己的評論,回答我自己的問題,並將它作爲答案發布,而不添加任何自己的評論?你的動機是什麼?你爲什麼這麼做? – vsync

+0

@vsync感謝您的詢問。對於上下文,請參閱https://meta.stackexchange.com/questions/170641/unanswered-questions-with-just-comments –

+0

我明白了,你正在做一個隨機審查:)我有時也這樣做 – vsync