鉴于此代码,我应该在哪里放置file.json以便能够在运行时中找到?
// path: src/main/kotlin/Server.kt
fun main() {
val serviceAccount = require("file.json")
}
我试过把它放在src / main / resources /下没有运气。我还使用Gradle使用kotlin2js
插件将kotlin编译为js。
如果你没有在Kotlin中输入js("require('./file.json')")
函数,你可以使用require
。结果将是dynamic
,所以你可以把它投到Map
。
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/js.html
假设Kotlin编译器将创建的JS文件(比如server.js
)放入build/classes/kotlin/main
的默认位置,将资源文件(file.json
)放入build/resources/main
。
而且你通过执行server.js
来运行node build/classes/kotlin/main/server.js
根据NodeJS文档:
可以使用相对路径(例如./,。/ foo,。/ bar / baz,.. / foo)导入本地模块和JSON文件,该路径将针对__dirname(如果已定义)命名的目录或当前工作目录。 (https://nodejs.org/api/modules.html#modules_require_id)
在我们的例子中,__dirname
是build/classes/kotlin/main
所以正确的require语句是:
val serviceAccount = js("require('../../../resources/main/file.json')")
或者如果require
被定义为问题中的Kotlin函数
val serviceAccount = require("../../../resources/main/file.json")