This repository has been archived by the owner on Dec 15, 2021. It is now read-only.
/
build.gradle.kts
101 lines (93 loc) · 3.38 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack
plugins {
val kotlinVersion: String by System.getProperties()
kotlin("plugin.serialization") version kotlinVersion
kotlin("js") version kotlinVersion
val kvisionVersion: String by System.getProperties()
id("io.kvision") version kvisionVersion
}
version = "1.0.0-SNAPSHOT"
group = "com.paysintech.techsalaries"
repositories {
mavenCentral()
jcenter()
mavenLocal()
}
// Versions
val kotlinVersion: String by System.getProperties()
val kvisionVersion: String by System.getProperties()
val webDir = file("src/main/web")
val deployDomain = "www.techsalaries.app"
kotlin {
js {
browser {
runTask {
outputFileName = "main.bundle.js"
sourceMaps = false
devServer = KotlinWebpackConfig.DevServer(
open = false,
port = 8080,
proxy = mutableMapOf(
"/kv/*" to "http://localhost:8080",
"/kvws/*" to mapOf("target" to "ws://localhost:8080", "ws" to true)
),
static = mutableListOf("$buildDir/processedResources/js/main")
)
}
webpackTask {
outputFileName = "main.bundle.js"
}
testTask {
useKarma {
useChromeHeadless()
}
}
}
binaries.executable()
}
sourceSets["main"].dependencies {
implementation(npm("sass", "^1.29.0"))
implementation(npm("sass-loader", "^10.1.0"))
implementation(npm("marked", "^1.2.4"))
implementation(npm("smooth-scroll", "^16.1.3"))
implementation(npm("@types/smooth-scroll", "*"))
implementation("io.kvision:kvision:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-spinner:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-typeahead:$kvisionVersion")
implementation("io.kvision:kvision-state:$kvisionVersion")
implementation("io.kvision:kvision-state-flow:$kvisionVersion")
implementation("io.kvision:kvision-jquery:$kvisionVersion")
}
sourceSets["test"].dependencies {
implementation(kotlin("test-js"))
implementation("io.kvision:kvision-testutils:$kvisionVersion")
}
sourceSets["main"].resources.srcDir(webDir)
}
afterEvaluate {
tasks {
create("dist", Copy::class) {
dependsOn("browserProductionWebpack")
group = "package"
destinationDir = file("$buildDir/dist")
val distribution =
project.tasks.getByName("browserProductionWebpack", KotlinWebpack::class).destinationDirectory
from(distribution) {
include("*.*")
}
from(webDir)
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
inputs.files(distribution, webDir)
outputs.files(destinationDir)
doLast {
val cname = file("$destinationDir/CNAME")
if (!cname.exists()) {
cname.createNewFile()
}
cname.writeText(deployDomain)
}
}
}
}