2017-05-12 5 views
3

official Angular + TypeScript plunkは、SystemJS 0.19.31を使用し、TypeScript 2.3.0を使用するように変更されました。同じplunk is changed to TypeScript 2.3.1 or 2.3.2TypeScript 2.3.1 SystemJS plunkの変更点

'typescript': 'npm:[email protected]/lib/typescript.js' 

のSystemJS構成はそれだけで動作を停止し

。コンソールにエラーはありません。

TypeScript 2.3.1の問題点は何ですか?それは既知の問題ですか?問題は現在の設定に固有ですか?

答えて

3

これは、SystemJSモジュールのフォーマット自動検出に問題があります。十分

// good enough ES6 module detection regex - format detections not designed to be accurate, but to handle the 99% use case 
    var esmRegEx = /(^\s*|[}\);\n]\s*)(import\s*(['"]|(\*\s+as\s+)?[^"'\(\)\n;]+\s*from\s*['"]|\{)|export\s+\*\s+from\s+["']|export\s*(\{|default|function|class|var|const|let|async\s+function))/; 

確かに、活字体2.3.1および2.3.2は、正規表現と一致するソースコードでこのコメントを持っている:

それはソースがES6で、transpiledする必要かどうかを確認するには、この正規表現を持っています:

// For an export of a module, we may be in a declaration file, and it may be accessed elsewhere. E.g.: 
    //  declare module "a" { export type T = number; } 
    //  declare module "b" { import { T } from "a"; export const x: T; } 

ので、これをデバッグするとき、あなたはSystemJSはtranspiler(typescriptです)をロードすることを確認することができ、それはES6ませんとtranspiledする必要があり、transpilerをロードし...、と決してあなたをtranspilingになると判断しましたコード(main.ts

typescriptですのための適切なフォーマットは、「グローバル」であるので、トップレベルでSystemJSの設定にこれを追加すると、それを修正する必要があります

meta: {typescript: {format: 'global'}} 
+0

良いもの、感謝です。 – estus

関連する問題