Kotlin multiplatform Javascript 或构建创建空模块
Koltin multiplatform Javascript IR build creates empty module
我已经为我们的 Kotlin 多平台项目添加了 JS 目标。该项目名为 STT。
js(IR) {
binaries.executable()
browser {
commonWebpackConfig {
cssSupport.enabled = true
}
webpackTask {
output.libraryTarget = "umd"
}
}
}
当我查看构建文件夹或 运行 JS 任务时 jsRun
JS 库看起来是空的。
例如,这里是构建文件夹
中的stt.js
(function (root, factory) {
if (typeof define === 'function' && define.amd)
define(['exports'], factory);
else if (typeof exports === 'object')
factory(module.exports);
else
root.stt = factory(typeof sttalg === 'undefined' ? {} : stt);
}(this, function (_) {
'use strict';
return _;
}));
这本质上是一个空对象
但是,当我同时使用 BOTH 或 Legacy 时,该文件看起来还不错
js(LEGACY) {
binaries.executable()
browser {
commonWebpackConfig {
cssSupport.enabled = true
}
webpackTask {
output.libraryTarget = "umd"
}
}
}
我错过了什么?
默认情况下,IR 后端不会将任何代码导出到 js。您需要将 @JsExport
添加到您想要访问的声明中。参见 https://kotlinlang.org/docs/js-to-kotlin-interop.html#jsexport-annotation
我已经为我们的 Kotlin 多平台项目添加了 JS 目标。该项目名为 STT。
js(IR) {
binaries.executable()
browser {
commonWebpackConfig {
cssSupport.enabled = true
}
webpackTask {
output.libraryTarget = "umd"
}
}
}
当我查看构建文件夹或 运行 JS 任务时 jsRun
JS 库看起来是空的。
例如,这里是构建文件夹
中的stt.js
(function (root, factory) {
if (typeof define === 'function' && define.amd)
define(['exports'], factory);
else if (typeof exports === 'object')
factory(module.exports);
else
root.stt = factory(typeof sttalg === 'undefined' ? {} : stt);
}(this, function (_) {
'use strict';
return _;
}));
这本质上是一个空对象
但是,当我同时使用 BOTH 或 Legacy 时,该文件看起来还不错
js(LEGACY) {
binaries.executable()
browser {
commonWebpackConfig {
cssSupport.enabled = true
}
webpackTask {
output.libraryTarget = "umd"
}
}
}
我错过了什么?
默认情况下,IR 后端不会将任何代码导出到 js。您需要将 @JsExport
添加到您想要访问的声明中。参见 https://kotlinlang.org/docs/js-to-kotlin-interop.html#jsexport-annotation