1

私のプロジェクトでは、typescript (V-1.8) で angular 2 を使用しています。出力を単一の .js ファイルに生成するように tsconfig を構成しました。このファイルには、boot.ts ファイルも .js ファイルにトランスパイルされるため、アプリケーションをブートストラップするコードも含まれています。私のアプリケーション構造は以下の通りです。

Root
|_app
|   |  |__Module1
|   |    |_a.ts
|   |    |_b.ts
|   |__Module2
|   |___|_xyz.ts
|   |
|   |_Boot.ts
|_Js
| |_Deployment
|            |_single.js
|_index.html
|_package.json
|_tsconfig.json

index.html に追加しました

<script type="text/javascript" src="js/Deployment/single.js"></script>
  <!-- 2. Configure SystemJS -->
  <script>
   System.config({
      packages: {
        app: {
          format: 'register',
          defaultExtension: 'js'
        }
      }
    });

    System.import('js/Deployment/single').then(null, console.error.bind(console));
  </script>

single.js 内で生成されたコードでは問題ないように見えます。ノード コマンド プロンプトで、下の画像のようなエラーが表示されました。

Ts エラー 2661

したがって、アプリケーションのロードに失敗します。これがangular 2エラーなのか、構文エラーなのか、それ以外なのか、手がかりがありません。.ts ファイルごとに個別の .js ファイルを生成し、index.html を次のように変更すると、

<script>
   System.config({
      packages: {
        app: {
          format: 'register',
          defaultExtension: 'js'
        }
      }
    });

    System.import('app/boot').then(null, console.error.bind(console));
  </script>

アプリケーションは正常に動作します。single.js のケースで何が問題なのかを理解するのを手伝ってください。

前もって感謝します。

4

1 に答える 1

0

この github スレッドを確認してください: https://github.com/angular/angular/issues/6468

ご参考までに、ユーザーsicanerは次のことを提案しています。

この問題を解決するには、declare var Promise: PromiseConstructor; を追加します。promise.d.ts の上に

この問題はクローズされているため、変更する前に、promise.d.tsAngular バージョンの更新を試みることができます。修正が既に存在する可能性があります。

于 2016-02-28T09:03:30.820 に答える