4

Visual Studio 2015 と共に Angular2 (2.0.0-alpha.44) の最新ビルドを試してみました。この問題に関連する、私が使用しているすべてのバージョンは次のとおりです。

  • ビジュアル スタジオ 2015
  • Asp.NET 5
  • タイプスクリプト 1.6
  • リシャーパー 10
  • Angular 2.0.0-alpha.44

これが私の解決策です:

ソリューション エクスプローラー

私の typescript はすべて /Ts ディレクトリにあり、そこにはtsconfig.jsonファイルもあります。これにより、Visual Studio は「typescript 仮想プロジェクト」を表示します。

tsconfig.json ts 仮想プロジェクトによるソリューション

import {Component, bootstrap} from "angular2/angular2";この行をmain.tsに入れるとすぐに、ディレクトリ内の angular2 ライブラリ ファイルが検出され、node_modulesそれらも表示されます (ただし、フラット化されたディレクトリ構造が何であるかはわかりません)。

ts resharper の警告

この時点で、typescript コンパイラはその単一のファイル (main.ts) をコンパイルします。ただし、そのフォルダー内の他の .ts ファイルをコンパイルしなくなり (angular2 を取り込む前に)、出力をtsconfig.jsonoutFileから指定された場所に配置しません。

ComponentResharper はとの参照を見つけるのに問題があることを示してbootstrapいますが、ツールチップはそれらの署名が何であるかを理解しているようです。両方がどのように真実であるかはわかりません。

方程式から angular2 を削除すると、typescript は喜んで tsconfig.json のすべての設定に従い、すべての .ts ファイルをapp.jsにコンパイルして、../wwwroot/js/app.js

ツールチップ付きの ts resharper 警告

VS2015、typescript、および angular2 をうまく連携させることに成功した人はいますか?

4

3 に答える 3

2

TypeScript ハンドブックから:

TypeScript では、ECMAScript 2015 と同様に、最上位のインポートまたはエクスポートを含むファイルはすべてモジュールと見なされます。

JS ファイルとモジュールが 1 対 1 で対応するのと同様に、TypeScript では、モジュール ソース ファイルとそれらが出力する JS ファイルが 1 対 1 で対応します。この影響の 1 つは、 --outFile コンパイラ スイッチを使用して、複数のモジュール ソース ファイルを 1 つの JavaScript ファイルに連結することができないことです。

これが、「式からangular2を削除する」ときに出力される理由だと思います。モジュール とoutFileは互換性がありません。outDir代わりに使用してください。

また、tsconfig ファイルをサブフォルダーに配置しようとしましたが、Visual Studio はそれを尊重しなかったため、プロジェクト ルートに戻しました。

于 2015-11-10T17:04:19.050 に答える
1

私は今、数週間試しています。d.ts ファイルがまだ間違っているようです。お気付きのように、定義ファイルはまだ alpha 38 または 39 です。

定義ファイルが alpha 38 または 39 ではなく、正しいバージョンから作成されたとしても、形状やフォームが固化されておらず、まだ欠落しているため、機能させることはできないと思います。私が信じるものの束。

あなたが得ているエラーはまだ見たことがなく、私は resharper を使用していません (ただし、これが実際に問題を引き起こしているとは思いません)。私が言えることは、ここにあるアルファ 26 で成功したということです。

https://github.com/microsoft/ngconf2015demo

これは初期のアルファ ビルドであるため、おそらく役に立たないでしょう。

また、新しいアルファ版では、UpdateAdapter の作成が開始されました。例は次の場所にあります。

http://blog.thoughtram.io/angular/2015/10/24/upgrading-apps-to-angular-2-using-ngupgrade.html

これは非常に重要なコンポーネントです。早期に採用しようとしている人は皆、angular2 内で angular1 ディレクティブを利用したいと考えるからです。

これも機能しません(これは非常に新しいアルファビルドですが)。定義ファイルはまだ 39 に過ぎず、それらの間には多少の不一致があります。彼のプロジェクト全体をそのままインポートしても、多くの欠落参照とエクスポートがあります。ビルド エラーを無効にするために d.ts ファイルを自分で変更する以外に、これについてできることはあまりありません。

また、モジュール システムは AMD に設定する必要があると思います。これにより、コンパイル時のエラーを回避することができます。また、Visual Studio では、現時点で angular2 を実行するには、標準を es5 に設定する必要があります (ただし、これは alpha 26 の例を実行するために使用した手順にすぎません)。

私はまだ仕事で毎日試しているので、それを実行できる場合 (angular2 コードベースに飛び込んで学習しないと実行できないと思います。次で実行する可能性があります)数週間)、この回答を編集してお知らせします。それまでの間、プラグを差し込んで動作するかどうかを確認し、お知らせください。

私の意見では、angular2 を使用する利点は十分に表現できないため、業界のリーダーは angular2 の採用をできるだけ早く行う必要があります。残念ながら、あらゆるアプリケーションで絶対に必要な多くのディレクティブはまだ angular 1.4 を使用しているため、ビジネスの観点から angular2 が役立つ前に、UpgradeAdapter (ngUpgrade) を使用できるようにする必要があります。

編集:

実際、定義ファイルは現在、tsd ではなく angular2 ソース内に配置されているようです。angular2 ソースから d.ts ファイルを取得してから、typescript ファイルをコンパイルしてみてください。

于 2015-11-06T00:57:36.787 に答える