You are currently viewing How to set up Kotlin for NodeJS with TS dependencies?

How to set up Kotlin for NodeJS with TS dependencies?

Hey, I’ve been using Kotlin in the JVM for a few years and I decided to try it on nodejs (I’m also working with node for a few years, so I’m not newbie in the platform).

I went to IDEA > New Project > Gradle > Kotlin (NodeJS). Added a few dependencies and enable the experimental Dukat:

build.gradle.kts

dependencies {implementation(kotlin("stdlib-js"))implementation(npm("firebase", "7.20.0"))implementation(npm("left-pad", "1.3.0"))}

gradle.properties

kotlin.code.style=officialkotlin.js.experimental.generateKotlinExternals=true

Both firebase and left-pad (obviously I’m using this for test) does have typescript mappings, so the kotlin mappings should be generated, right?

I refreshed Gradle and went to the src/main trying to import the dependencies, but nothing happened and I don’t know why. Looking at build/js/node_modules the dependencies are there.

I tried to run the Dukat gradle tasks and nothing happened too.

This section about external dependencies is very bad documented, I need some help to set it up.

btw I’m on Kotlin 1.4, my full build.gradle looks like this:

plugins {id("org.jetbrains.kotlin.js") version "1.4.10"}group = "dev.nathanpb"version = "1.0.0"repositories {mavenCentral()}dependencies {implementation(kotlin("stdlib-js"))implementation(npm("firebase", "7.20.0"))implementation(npm("left-pad", "1.3.0"))}kotlin {js {nodejs {}binaries.executable()}}

Thank you all, hope I will be using this in production soon

SOLUTION: I’m stupid and can’t read documentations: https://kotlinlang.org/docs/reference/js-external-declarations-with-dukat.html#generating-external-declarations-at-build-time

submitted by /u/_nathata
[link] [comments]