2017-07-10 1 views
0

いいえ、私はangle2アプリケーションを構築していません。 は私がSystemJSをしようとしています、ここでここでSystemJS:デフォルトのJSエクステンションを提供するのに何が欠けていますか

<script type="text/javascript"> 
    System.config({ baseURL: '/scripts/ts', 
     map: { 'deck': 'deck'}, defaultJSExtensions: "js", defaultExtension: "js" }); 
    System.import('deck').then(function() { 
      document.write("Loaded..."); 
     }); 
</script> 

私のモジュールをロードするために私のスクリプトは、私が取得していますコンソールメッセージですされています。

system.src.js:sourcemap:80 Uncaught (in promise) Error: Unexpected identifier Evaluating http://localhost:61968/scripts/ts/deck Loading deck 
    at eval (<anonymous>) 
    at evaluate (system.src.js:sourcemap:2821) 
    at system.src.js:sourcemap:3620 
    at dynamicExecute (system.src.js:sourcemap:1144) 
    at doEvaluate (system.src.js:sourcemap:1091) 
    at ensureEvaluate (system.src.js:sourcemap:999) 
    at system.src.js:sourcemap:617 
    at <anonymous> 

systemjsがデフォルトの拡張子を選択していないようです。これをどうすれば解決できますか?

+1

'document.write'を使用しないでください。特に非同期コールバックではありません。 – Bergi

答えて

1

defaultJSExtensionsは、バージョン0.20.0以降でサポートを中止しました。 release notes for 0.20.0-alpha1:「defaultJSExtensionsのサポートを削除します」に表示されます。

defaultExtensionは、packagesオプションで定義されたパッケージのパラメータであるため、パッケージを使用するために定義する必要があります。あなたのmapも必要ではないことを考慮すると

は、その後、あなたはこのようなものを使用する必要があります

{ 
    baseURL: '/scripts/ts', 
    packages: { 
    // Yep, this defines a package with an empty name. This will 
    // encompass everything not encompassed by a more specific package 
    // name. 
    "": { 
     defaultExtension: "js" 
    }, 
    }, 
} 

実は、これも動作します:

{ 
    baseURL: '/scripts/ts', 
    packages: { 
    "": {}, 
    }, 
} 

をここではその理由です:いいえがあります拡張機能を追加するためのグローバルデフォルト。ただし、パッケージを定義してもそのパッケージにdefaultExtensionを指定しないと、パッケージにはdefaultExtensionというデフォルト値("js")が自動的に設定されます。

+0

私は自分でドキュメントを読んで実際にそれを解決しましたが、質問に追加するよりも誰かがもっと良い答えを得られるだろうと分かっていました。私は空のパッケージ名の事についても知らなかった。ありがとうございました – fahadash

関連する問題