I have a bunch of Javascript files I need to access from Kotlin Code.
I created a js-files directory in my root project with the needed .js files and a package.json which looks like this:
{
"name": "js-files",
"version": "1.0.0",
"dependencies": {
}
}
My build.gradle looks like this:
plugins {
kotlin("js")
}
version = "unspecified"
repositories {
mavenCentral()
}
kotlin {
js {
useCommonJs()
nodejs()
browser {
webpackTask {
output.libraryTarget = "commonjs2"
}
}
binaries.executable()
}
}
dependencies {
val path = rootProject.projectDir.resolve("js-files").canonicalPath
implementation(npm("js-protos", "file:$path"))
}
The idea for this I got from this post.
For debugging, i have the following js file in js-files:
export function func() {
console.log("This is my test function.")
}
and my kotlin main looks like this:
@JsModule("js-files")
external fun func()
fun main() {
func()
}
However, when i run the project using vrowserDevelopmentRun i receive this error:
Module not found: Error: Can't resolve 'js-files' in 'path-to-my-project/build/js/packages/project-name-js/kotlin-dce-dev'
Maybe there is an easier way of binding my js files but after hours of research i found nothing. I’m thankful for any help.