Fix embedding sources to source maps when compiling JS stdlib
This commit is contained in:
@@ -118,6 +118,7 @@ compileBuiltinsKotlin2Js {
|
|||||||
metaInfo = false
|
metaInfo = false
|
||||||
outputFile = "${buildDir}/classes/builtins/kotlin.js"
|
outputFile = "${buildDir}/classes/builtins/kotlin.js"
|
||||||
sourceMap = true
|
sourceMap = true
|
||||||
|
sourceMapPrefix = "./"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,6 +127,7 @@ compileKotlin2Js {
|
|||||||
kotlinOptions {
|
kotlinOptions {
|
||||||
outputFile = "${buildDir}/classes/main/kotlin.js"
|
outputFile = "${buildDir}/classes/main/kotlin.js"
|
||||||
sourceMap = true
|
sourceMap = true
|
||||||
|
sourceMapPrefix = "./"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,7 +151,7 @@ task compileJs(type: JavaExec) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
main = "org.jetbrains.kotlin.js.FileMergerKt"
|
main = "org.jetbrains.kotlin.js.FileMergerKt"
|
||||||
args = [jsOutputFile, "$rootDir/../", "$jsSrcDir/wrapper.js"] + inputFiles.collect { it.path } +
|
args = [jsOutputFile, rootDir, "$jsSrcDir/wrapper.js"] + inputFiles.collect { it.path } +
|
||||||
["$buildDir/classes/builtins/kotlin.js", "$buildDir/classes/main/kotlin.js"]
|
["$buildDir/classes/builtins/kotlin.js", "$buildDir/classes/main/kotlin.js"]
|
||||||
classpath = configurations.merger
|
classpath = configurations.merger
|
||||||
|
|
||||||
@@ -172,25 +174,22 @@ task compileJs(type: JavaExec) {
|
|||||||
|
|
||||||
def sourceMapFile = file("${jsOutputFile}.map")
|
def sourceMapFile = file("${jsOutputFile}.map")
|
||||||
def sourceMap = new groovy.json.JsonSlurper().parseText(sourceMapFile.text)
|
def sourceMap = new groovy.json.JsonSlurper().parseText(sourceMapFile.text)
|
||||||
def sourceMapSourcesBaseDirs = [ "${rootDir}/..", jsSrcJsDir ]
|
|
||||||
|
|
||||||
sourceMap.sourcesContent = sourceMap.sources.collect { sourceName ->
|
|
||||||
sourceMapSourcesBaseDirs.collect { file("$it/$sourceName") }.find { it.exists() && it.name != "kotlin.js" }?.text
|
|
||||||
}
|
|
||||||
|
|
||||||
def sourceMapBasePaths = [
|
def sourceMapBasePaths = [
|
||||||
"js/js.libraries/src/",
|
"./",
|
||||||
"libraries/stdlib/js/build/builtin-sources/",
|
"/js.libraries/src/js/"
|
||||||
"libraries/stdlib/js/build/builtin-sources-for-builtins/",
|
|
||||||
"libraries/stdlib/js/build/builtin-sources-for-builtins/",
|
|
||||||
"libraries/stdlib/js/build/common-sources/"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
sourceMap.sources = sourceMap.sources.collect { sourcePath ->
|
sourceMap.sources = sourceMap.sources.collect { sourcePath ->
|
||||||
def prefixToRemove = sourceMapBasePaths.find { basePath -> sourcePath.startsWith(basePath) }
|
def prefixToRemove = sourceMapBasePaths.find { basePath -> sourcePath.startsWith(basePath) }
|
||||||
if (prefixToRemove != null) sourcePath.substring(prefixToRemove.length()) else sourcePath
|
if (prefixToRemove != null) sourcePath.substring(prefixToRemove.length()) else sourcePath
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def sourceMapSourcesBaseDirs = [ jsSrcDir, builtinsSrcDir2, builtinsSrcDir, commonSrcDir, rootDir ]
|
||||||
|
|
||||||
|
sourceMap.sourcesContent = sourceMap.sources.collect { sourceName ->
|
||||||
|
sourceMapSourcesBaseDirs.collect { file("$it/$sourceName") }.find { it.exists() && it.name != "kotlin.js" }?.text
|
||||||
|
}
|
||||||
|
|
||||||
sourceMapFile.text = groovy.json.JsonOutput.toJson(sourceMap)
|
sourceMapFile.text = groovy.json.JsonOutput.toJson(sourceMap)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user