2017-10-18 25 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せずに?

2つの別々のインポートステートメントを使用すると、ファイルは複数回実行されません。ファイルが一度ロードされると、エクスポートされた値はキャッシュされ、後の呼び出しで使用されます。それを1つのステートメントにグループ化する唯一の理由は、潜在的な可読性の向上です。あなたの質問に答えるために、あなたがしたい場合は、

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は、アプリケーション全体で何回使用/インポートされているかにかかわらずモジュールを一度バンドルしてください。あなたは、ビルド出力ファイルに何度もグリッドソースを含むwebpackについて心配していますか? –

関連する問題