Angular2 は、プロジェクト ソースへのよりモジュール化されたアプローチに移行しました。これは、サブモジュールのソース、html テンプレート、およびテストのすべてが 1 つのディレクトリにまとめられていることを意味します。アプリ、パブリック、およびテスト ディレクトリに分散する代わりに。
これは非常に理にかなったアプローチです。
そのために Play/sbt-web を設定しようとしています。私のプロジェクトには次の設定があります。
includeFilter in Assets in typescript:= GlobFilter("*.ts") | GlobFilter("*.tsx")
excludeFilter in Assets in typescript:= GlobFilter("*.spec.ts") | GlobFilter("*.mock.ts")
sourceDirectory in TestAssets := (sourceDirectory in Assets).value
includeFilter in TestAssets in typescript := GlobFilter("*.spec.ts") | GlobFilter("*.mock.ts")
excludeFilter in TestAssets in typescript := - (GlobFilter("*.spec.ts") | GlobFilter("*.mock.ts"))
アセットのコンパイル手順は正しく機能します。しかしその後、重複したマッピング エラーが発生します (以下を参照)。コンパイルされたアセットは、excludefilterを適用せずに TestAssets コンパイルに webjar 依存関係として追加されているようです。これにより、重複したマッピングが説明されます。
これを私のプロジェクトで機能させる方法はありますか? それとも、これは sbt-web の欠点ですか? (必要に応じて修正のためのプルリクエストに取り組んでいきます)
私の Activator の例の play-angular2-typescript プロジェクトはこちらにあります。
これは重複マッピング エラーです。
[error] (web-assets-test:assets) Duplicate mappings:
[error] /Users/joost1/source/play-angular2-typescript-template/target/web/public/test/public/app/app.ts
[error] from
[error] /Users/joost1/source/play-angular2-typescript-template/app/assets/app/app.ts
[error] /Users/joost1/source/play-angular2-typescript-template/target/web/web-modules/test/webjars/lib/play-angular2-typescript/app/app.ts
[error] /Users/joost1/source/play-angular2-typescript-template/target/web/public/test/public/app/app.html
[error] from
[error] /Users/joost1/source/play-angular2-typescript-template/app/assets/app/app.html
[error] /Users/joost1/source/play-angular2-typescript-template/target/web/web-modules/test/webjars/lib/play-angular2-typescript/app/app.html
[error] /Users/joost1/source/play-angular2-typescript-template/target/web/public/test/public/app/app.spec.ts
[error] from
[error] /Users/joost1/source/play-angular2-typescript-template/app/assets/app/app.spec.ts
[error] /Users/joost1/source/play-angular2-typescript-template/target/web/web-modules/test/webjars/lib/play-angular2-typescript/app/app.spec.ts