2017-02-15 5 views
1

SystemJSの設定で使用されているさまざまな用語がわかりません。それはおよそモジュール、場所、パッケージ等...SystemJSコンフィグレーションのモジュールVsロケーションVsパッケージとは何ですか?

はJSでモジュールないですが、単一のファイルであり、かつパッケージはモジュールやファイルの集まりです語りますか?もしそうなら、どのようにモジュールをパッケージのエイリアスにすることができますか?

これはdocumentation pageからのものである:

マップオプションはパスと同様であるが、非常に初期の正規化プロセスに作用します。それはあなたが場所やパッケージにモジュールの別名をマッピングすることができます:

答えて

1

はいモジュールは、それが(仮定.js拡張子を持つ)だけで、ファイル名のJavaScriptで単一のファイルであり、引用符でfromキーワードの後に​​

import ... from 'some-module'; 

SystemJS設定ファイルでpathsmapを使用して、some-moduleが参照する実際のファイルまたはURLを定義することができます。

packages設定ファイルには、特定の場所(packagesオブジェクトのキー)以下のすべてのモジュールに対して一連の設定パラメータ(デフォルトの拡張子、モジュール形式、カスタムローダなど)を適用できます。 packagesの設定の

一つは、(それがindex.js、デフォルト値は空ではないことを除いて)ノードにpackage.jsonmainに似てmain、次のとおりです。それはパッケージの場所自体がでfromに表示されたときにロードされたファイルを判別しますimport声明。

私は「モジュールがパッケージのエイリアスになる方法」と思います。これに関する質問

マップオプションはパスに似ていますが、正規化プロセスの最初の段階で機能します。

は、この例で説明することができます:それはあなたが 場所やパッケージにモジュールの別名をマッピングすることができますこれらのmapは、packagespath設定が

にSystemJSによって適用されている

paths: { 
    'npm:': 'node_modules/' 
}, 
map: { 
    'some-module': 'npm:some-module' 
}, 
packages: { 
    'some-module': { 
     main: './index.js' 
    } 
} 

import something from 'some-module'; 

これにより、SystemJSはnode_modules/some-module/index.jsのモジュールをbaseURLにロードします。

import something from 'some-module/subcomponent'; 

node_modules/some-module/subcomponent.jsにマッピングされます。

注:これはSystemJS 0.19での私の経験に基づいています。私はまだ0.20を試していない。

関連する問題