Kotlin / kotlin-frontend-plugin

Gradle Kotlin (http://kotlinlang.org) plugin for frontend development
Apache License 2.0
563 stars 69 forks source link

Missing Gradle plugin ID inhibits usage in kotlin gradle scripts #143

Open sambsnyd opened 5 years ago

sambsnyd commented 5 years ago

The kotlin-frontend plugin doesn't have a Gradle plugin id. See Gradle's guide for including a plugin id.

I'm happy to provide a pull request that adds such an id. How does "org.jetbrains.kotlin.js.frontend" sound?

There are a number of unfortunate consequences of not having this id. Chiefly, it makes this plugin much harder to use with Gradle 5.0+ and .gradle.kts build scripts.

In Gradle 4.0, handy type safe accessors like DependencyHandler.compile() could be manually generated. As of Gradle 5.0 this is no longer an option. Only plugins applied via plugins get the nice, type safe DSL accessors. Plugins require an id to be applied via plugins. So the lack of such an ID makes it huge pain to use the kotlin-frontend plugin with kotlin build scripts.

buildscript {
   // configure repositories to include kotlin-eap 
}
apply plugin: "kotlin2js"
apply plugin: // kotlin frontend 
dependencies {
    compile("group:module:version") // script compilation will fail in Gradle 5.0
}

kotlinFrontend { // script compilation will fail in Gradle 5.0

}
markjfisher commented 5 years ago

This would be a really nice thing to have, particularly as this whole plugin is being used in the context of kotlin.

The first thing I looked for was how to include it via an ID, and then subsequently found this issue.

Would it progress quicker if a PR was generated rather than waiting for someone to say "go ahead"?