Skip to content
This repository was archived by the owner on Feb 16, 2019. It is now read-only.

multi project build #16

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ The following `tsc` compiler options are managed by `sbt-typescript` so setting
If you use the `stage` compile mode the `outFile` option is also managed by `sbt-typescript`.

##release notes
#### v0.4.0-alfa.1
- supports multi project builds. Uses sbt-web webModules for js deps resolution instead of nodeModules.
Hence the alfa moniker to see whether f.i. @types resolution still works.

#### v0.3.0-beta.9
- fixes compilation of test assets
Expand Down
4 changes: 2 additions & 2 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
sbtPlugin := true
organization := "name.de-vries"
name := "sbt-typescript"
version := "0.3.0-beta.9"
version := "0.4.0-alfa.1"

homepage := Some(url("https://github.com/joost-de-vries/sbt-typescript"))
licenses +=("Apache-2.0", url("http://www.apache.org/licenses/LICENSE-2.0"))
Expand Down Expand Up @@ -59,4 +59,4 @@ bintrayVcsUrl := Some("[email protected]:joost-de-vries/sbt-typescript.git")

scriptedSettings
scriptedLaunchOpts += s"-Dproject.version=${version.value}"
//scriptedBufferLog := false
scriptedBufferLog := false
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,8 @@ object SbtTypescript extends AutoPlugin with JsonProtocol {
taskMessage in TestAssets := "Typescript test compiling"
)
) ++ SbtJsTask.addJsSourceFileTasks(typescript) ++ Seq(
typescript in Assets := (typescript in Assets).dependsOn(webJarsNodeModules in Assets).value,
typescript in TestAssets := (typescript in TestAssets).dependsOn(webJarsNodeModules in TestAssets).value
typescript in Assets := (typescript in Assets).dependsOn(webModules in Assets).value,
typescript in TestAssets := (typescript in TestAssets).dependsOn(webModules in TestAssets).value
)

def typescriptUnscopedSettings(config: Configuration) = {
Expand Down Expand Up @@ -135,8 +135,8 @@ object SbtTypescript extends AutoPlugin with JsonProtocol {
),
"tsCodesToIgnore" -> JsArray(tsCodesToIgnore.value.toVector.map(JsNumber(_))),
"nodeModulesDirs" -> toJsArray(
mainDir = (webJarsNodeModulesDirectory in Assets).value.getAbsolutePath,
testDir = (webJarsNodeModulesDirectory in TestAssets).value.getAbsolutePath),
mainDir = ((webJarsDirectory in Assets).value / "lib" ).getAbsolutePath,
testDir = ((webJarsDirectory in TestAssets).value / "lib").getAbsolutePath),
"resolveFromNodeModulesDir" -> JsBoolean(resolveFromWebjarsNodeModulesDir.value),
"runMode" -> JsString(getCompileMode.value.toString),
"assertCompilation" -> JsBoolean(assertCompilation.value)
Expand Down
31 changes: 19 additions & 12 deletions test/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,26 @@


lazy val root = (project in file(".")).enablePlugins(SbtWeb)

JsEngineKeys.engineType := JsEngineKeys.EngineType.Node

logLevel in typescript := Level.Debug

assertCompilation in typescript := true


jasmineFilter in jasmine := GlobFilter("*Test.js") | GlobFilter("*Spec.js") | GlobFilter("*.spec.js")
logLevel in jasmine := Level.Info
.aggregate(web, common)

lazy val common = (project in file("modules/common"))
.enablePlugins(SbtWeb)
.settings(commonSettings)

lazy val web = (project in file("modules/web"))
.enablePlugins(SbtWeb)
.settings(commonSettings)
.dependsOn(common)

lazy val commonSettings = Seq(
JsEngineKeys.engineType := JsEngineKeys.EngineType.Node,
logLevel in typescript := Level.Debug,
assertCompilation in typescript := true,
resolveFromWebjarsNodeModulesDir := true,
excludeFilter in Assets := (excludeFilter in Assets).value || "*.ts"
)

libraryDependencies ++= Seq(
"org.webjars.npm" % "types__jasmine" % "2.5.40"
)

resolveFromWebjarsNodeModulesDir := true

5 changes: 5 additions & 0 deletions test/modules/common/src/main/assets/component.a.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export class A{
constructor(){

}
}
30 changes: 30 additions & 0 deletions test/modules/common/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"emitDecoratorMetadata": true,
"experimentalDecorators":true,
"noEmitOnError": true,
"sourceMap": true,
"declaration": true,
"mapRoot": "/assets",
"rootDirs": ["src/main/assets","src/test/assets"],
"baseUrl": ".",
"paths": {
"*": [
"*",
"target/web/node-modules/main/webjars/*",
"target/web/node-modules/main/webjars/lib/*"
]
},
"outDir": "./target/tsc"
},
"exclude": [
"node_modules",
"typings/browser",
"typings/main",
"typings/main.d.ts",
"target",
"project"
]
}
3 changes: 3 additions & 0 deletions test/modules/web/src/main/assets/component.b.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import {A} from "common/component.a"

const a = new A()
29 changes: 29 additions & 0 deletions test/modules/web/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators":true,
"noEmitOnError": true,
"sourceMap": true,
"mapRoot": "/assets",
"rootDirs": ["src/main/assets","src/test/assets"],
"baseUrl": ".",
"paths": {
"*": [
"*",
"target/web/web-modules/main/webjars/lib/*"
]
},
"outDir": "./target/tsc"
},
"exclude": [
"node_modules",
"typings/browser",
"typings/main",
"typings/main.d.ts",
"target",
"project"
]
}
2 changes: 1 addition & 1 deletion test/project/build.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
sbt.version=0.13.11
sbt.version=0.13.13
11 changes: 4 additions & 7 deletions test/project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
lazy val root = Project("plugins", file(".")).dependsOn(plugin)


addSbtPlugin("name.de-vries" % "sbt-jasmine" % "0.0.1SNAPSHOT")

lazy val plugin = file("../").getCanonicalFile.toURI
//logLevel := Level.Debug
resolvers ++= Seq(
Resolver.sbtPluginRepo("releases"),
Resolver.mavenLocal,
Resolver.sonatypeRepo("releases"),
Resolver.typesafeRepo("releases")
Resolver.sbtPluginRepo("releases"),
Resolver.mavenLocal,
Resolver.sonatypeRepo("releases"),
Resolver.typesafeRepo("releases")
)
2 changes: 0 additions & 2 deletions test/readme.md

This file was deleted.

3 changes: 0 additions & 3 deletions test/src/main/assets/function.ts

This file was deleted.

7 changes: 0 additions & 7 deletions test/src/test/assets/jasmine.json

This file was deleted.

11 changes: 0 additions & 11 deletions test/src/test/assets/test.spec.ts

This file was deleted.

15 changes: 4 additions & 11 deletions test/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,24 +1,17 @@
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"module": "system",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"noEmitOnError": true,
"experimentalDecorators":true,
"sourceMap": true,
"lib": [
"es6"
],
"mapRoot": "/assets",
"rootDirs": [
"src/main/assets",
"src/test/assets"
],
"rootDirs": ["src/main/assets","src/test/assets"],
"baseUrl": ".",
"paths": {
"*": [
"*",
"target/web/node-modules/main/webjars/*"
"target/web/web-modules/main/webjars/lib/*"
]
},
"outDir": "./target/tsc"
Expand Down