如何将我的Angular2 TestAssets与我的Assets with Play Framework放在同一目录中?

时间:2016-04-30 12:22:33

标签: playframework sbt sbt-web

Angular2已经采用了更加模块化的方法来处理项目资源。这意味着所有子模块源,html模板和测试都在一个目录中。而不是遍布应用程序,公共和测试目录。

这是一种很有意义的方法。

我正在尝试为此配置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"))

资产编译步骤正常。但之后我得到了重复的映射错误(见下文)。似乎已编译的Assets作为webjar依赖项添加到TestAssets编译而不应用excludefilter 。这将解释重复映射。

有没有办法在我的项目中使用它?或者这是sbt-web的缺点? (如果有必要的话,我愿意为pullrequest做一个修复工作)

你可以找到我的Activator示例play-angular2-typescript项目here

这是重复的映射错误:

[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

0 个答案:

没有答案