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