Предположим, что компилятор Kotlin помещает созданный JS-файл (скажем, server.js
) в папку по умолчанию build/classes/kotlin/main
, а файл ресурсов (file.json
) — в build/resources/main
.
И вы запускаете server.js
, выполняя node build/classes/kotlin/main/server.js
Согласно документации NodeJS:
Локальные модули и файлы JSON можно импортировать, используя относительный путь (например, ./, ./foo, ./bar/baz, ../foo), который будет сопоставлен с каталогом с именем __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")
person
Alexander Egger
schedule
27.03.2019
json-loader
для веб-пакета, чтобы загрузить json с кодом - person Vlad   schedule 08.07.2020