2017-06-26 38 views
1

このインポート宣言には、+の記号は何を表していますか?だけではなくとしてES6インポート宣言+記号

import app from '+/api';

import app from '/api';

インポートスニペットは、バベルとtranspiledさES6を使用してノードのアプリケーションからのものです。

./api/index.js Iもチルダを使用して、この構文を見ているexport default app;

を使用してExpressインスタンスをエクスポート:

import app from '~/api';

+3

アプリがwebpackやbrowserifyなどのモジュールバンドラーを使用している場合は、その設定ファイルまたはドキュメントを参照する必要があります。これらのシンボルは、ECMAScriptまたはNodeでは意味を持ちません。 –

答えて

5

モジュール識別子の構造又はどのように解釈されるべきであるかはnot part of the ECMAScript specificationです。

モジュール識別子の意味は、モジュールローダーによって定義されます。すなわち、実際に値を受け取り、対応するモジュールを見つけるシステムの部分です。

もちろんNode.jsにはモジュールローダーがあります。 Node.jsはdefines that module identifiers are either names of shared modules or paths to filesです。

ここでは、+(または~)はNode.jsでは意味を持ちません。私は、プロジェクトがモジュール・バンドラまたはモジュール・ファイルとその依存関係を処理している同様のものを使用していると仮定できます。それは+の意味を定義するシステムの部分です。


私は、これは多くの人が理解していないという点だと思う:ES6は宣言依存関係のための標準的な構文を定義しますが、実際のモジュールにモジュール識別子の解像度はの一部ではありませんランタイム/環境によって大きく異なる場合があります。 Node.jsの人気が最も高いのは、Nodeが使用するCommonJS module systemと互換性がありますが、その基準はありません。

関連する問題