2017-10-18 68 views
0

我正在使用ES6,我想導入相同的文件作爲2個不同的名稱。ES6 Javascript導入多個名稱相同的js文件

import Contact from './Grid' 
import Account from './Grid' 

有沒有一種方法,我可以有網格命名的聯繫人和帳戶沒有webpack多次導入它?

+0

爲什麼你不只是別名的第一次進口? 'const Account = Contact' – djfdev

+1

'多次導入'應該是什麼意思?一個模塊可以被導入任何需要的地方,但它將被評估一次。 – estus

回答

3

沒有的WebPack導入它多次?

使用兩個單獨的導入語句將不會多次執行該文件。一旦一個文件被加載一次,它的導出值就被緩存起來,供以後的調用使用。鑑於此,將其歸入一個聲明的唯一原因是潛在的可讀性改進。這就是說,回答你的問題,你可以做

import { 
    default as Contact, 
    default as Account, 
} from './Grid'; 

如果你想。你也可能做

import Contact from './Grid' 
const Account = Contact; 

只是注意,它不會做相當在那裏有你的模塊循環依賴的情況下同樣的事情。

0

如果在你的網格文件中,你正在導出你想要的對象/函數等。作爲默認導出(請參見下文),您可以在導入時使用任何想要的名稱。一個例子,如果電網是一個功能是:

//Grid file 
export default function Grid() { 
    // your Grid info 
} 

//import file 
import Contact from './Grid' 
import Account from './Grid' 
+0

所以你說在這個例子中webpack不會導入多次''。/ Grid''? 我已經在做導出,但它是一個類。 – Sehab

+0

我不確定我是否理解您的問題,但是無論您的應用使用/導入多少次,webpack都應該只捆綁一次模塊。您是否擔心在構建輸出文件中多次包含Grid源碼或其他內容? –

相關問題