我有一堆需要从 Kotlin 代码访问的 Javascript 文件。
我在根项目中创建了一个 js-files 目录,其中包含所需的 .js 文件和一个如下所示的 package.json:
{
"name": "js-files",
"version": "1.0.0",
"dependencies": {
}
}
我的 build.gradle 看起来像这样:
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-files", "file:$path"))
}
我从这篇文章中得到了这个想法。
为了调试,我在 js-files 中有以下 js 文件:
export function func() {
console.log("This is my test function.")
}
我的 kotlin main 看起来像这样:
@JsModule("js-files")
external fun func()
fun main() {
func()
}
但是,当我使用 vrowserDevelopmentRun 运行项目时,我收到此错误:
Module not found: Error: Can't resolve 'js-files' in 'path-to-my-project/build/js/packages/project-name-js/kotlin-dce-dev'
也许有一种更简单的方法来绑定我的 js 文件,但经过数小时的研究,我一无所获。我很感激任何帮助。