如何在不使用stdlib的情况下使用KotlinJS?

由于在大多数情况下我们有这样的:

dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version" } 

而Kotlin标准库似乎对我来说很大。
我想通过只声明我需要的external方法来创建我自己的stdlib(它可以更小)来最小化它。

我试图删除该方法,它编译,但生成的JS代码有这样的:

 if (typeof kotlin === 'undefined') { throw new Error("Error loading module 'streaking'. Its dependency 'kotlin' was not found. Please, check whether 'kotlin' is loaded prior to 'streaking'."); } 

这意味着stdlib中一定有必要的东西,我不知道。

由于我的要求如上所述,是否有任何解决方法?
或者我怎样才能减少生成的代码的大小?

您应该使用Kotlin的kotlin-dce-js插件,它完全按照您的要求进行操作:将代码最小kotlin-dce-js您真正使用的代码,并消除“死代码”。

看到这里: https : //kotlinlang.org/docs/reference/javascript-dce.html#javascript-dce

“有几种方法可以得到未使用的声明:[…] – 你正在使用一个共享库,它提供了比你实际需要的function更多的function。例如,标准库(kotlin.js)包含了处理列表,数组,字符序列,DOM适配器等,它们共同提供大约1.3 MB的文件。一个简单的“Hello,world”应用程序只需要控制台程序,对于整个文件来说只有几千字节。

这是一个替代方案。 您可以踢出kotlin运行时并使用此方法声明:

 external fun js(code: String): dynamic 

就像,如果你使用console.log ,只需写

 js("console").log("Hey man") 

并删除您在描述中提到的检查。 它会工作。