[Gradle, JS] Add resolveFromModulesFirst option
When we collect all DCE'd files, we need, that webpack to watch on these files, not on node_modules module
This commit is contained in:
+2
@@ -96,6 +96,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
||||
|
||||
when (kind) {
|
||||
BuildVariantKind.RELEASE -> {
|
||||
it.resolveFromModulesFirst = true
|
||||
it.dependsOn(dceTask)
|
||||
}
|
||||
BuildVariantKind.DEBUG -> {
|
||||
@@ -139,6 +140,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
||||
|
||||
when (kind) {
|
||||
BuildVariantKind.RELEASE -> {
|
||||
it.resolveFromModulesFirst = true
|
||||
it.dependsOn(dceTask)
|
||||
project.tasks.getByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).dependsOn(it)
|
||||
}
|
||||
|
||||
+5
-1
@@ -56,6 +56,9 @@ open class KotlinWebpack : DefaultTask(), RequiresNpmDependencies {
|
||||
val entry: File
|
||||
get() = compilation.compileKotlinTask.outputFile
|
||||
|
||||
@Input
|
||||
var resolveFromModulesFirst: Boolean = false
|
||||
|
||||
@Suppress("unused")
|
||||
val runtimeClasspath: FileCollection
|
||||
@InputFiles get() = compilation.compileDependencyFiles
|
||||
@@ -126,7 +129,8 @@ open class KotlinWebpack : DefaultTask(), RequiresNpmDependencies {
|
||||
bundleAnalyzerReportDir = if (report) reportDir else null,
|
||||
devServer = devServer,
|
||||
devtool = devtool,
|
||||
sourceMaps = sourceMaps
|
||||
sourceMaps = sourceMaps,
|
||||
resolveFromModulesFirst = resolveFromModulesFirst
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
+16
-1
@@ -31,7 +31,8 @@ data class KotlinWebpackConfig(
|
||||
val sourceMaps: Boolean = false,
|
||||
val export: Boolean = true,
|
||||
val progressReporter: Boolean = false,
|
||||
val progressReporterPathFilter: String? = null
|
||||
val progressReporterPathFilter: String? = null,
|
||||
val resolveFromModulesFirst: Boolean = false
|
||||
) {
|
||||
fun getRequiredDependencies(versions: NpmVersions) =
|
||||
mutableListOf<RequiredKotlinJsDependency>().also {
|
||||
@@ -110,6 +111,7 @@ data class KotlinWebpackConfig(
|
||||
)
|
||||
|
||||
appendEntry()
|
||||
appendResolveModules()
|
||||
appendSourceMaps()
|
||||
appendDevServer()
|
||||
appendReport()
|
||||
@@ -219,6 +221,19 @@ data class KotlinWebpackConfig(
|
||||
)
|
||||
}
|
||||
|
||||
private fun Appendable.appendResolveModules() {
|
||||
if (!resolveFromModulesFirst || entry == null || entry.parent == null) return
|
||||
|
||||
//language=JavaScript 1.8
|
||||
appendln(
|
||||
"""
|
||||
// resolve modules
|
||||
config.resolve.modules.unshift(${entry.parent.jsQuoted()})
|
||||
|
||||
""".trimIndent()
|
||||
)
|
||||
}
|
||||
|
||||
private fun Appendable.appendProgressReporter() {
|
||||
if (!progressReporter) return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user