[英]Can't link a JS script generated from a Kotlin/JS project using IntelliJ IDEA
如上所述,问题是我无法将 Kotlin 项目(称为twf
)中的已编译 JS 代码链接到我的网络项目。 无论我尝试什么,Chrome 都会输出错误,例如twf.stringToExpression is not a function
就我而言,Kotlin 代码确实可以正确编译,并且 output 文件twf.js
的开头如下所示:
if (typeof kotlin === 'undefined') {
throw new Error("Error loading module 'twf'. Its dependency 'kotlin' was not found. Please, check whether 'kotlin' is loaded prior to 'twf'.");
}var twf = function (_, Kotlin) {
'use strict';
var setOf = Kotlin.kotlin.collections.setOf_mh5how$;
...
这意味着变量twf
确实存在。 此外,在同一个文件中,我发现了这个:
function stringToExpression(string, scope, isMathMl, functionConfiguration, compiledConfiguration) {
if (scope === void 0)
...
if (isMathMl === void 0)
...
if (functionConfiguration === void 0) {
...
}if (compiledConfiguration === void 0)
...
所以 function 存在,我可以只用一个字符串作为输入来调用它,就像我在index.html
文件中所做的那样(我知道在 Z4C4AD5FCA2E7A3F74DBB1CED003F74DBB1CED003F74DBB1CED00381AA4 ):
<script type="text/javascript">
...
var testTaskString = "a-b/c";
console.log(twf.stringToExpression(testTaskString));
...
</script>
尽管如此,我仍然收到我上面提到的错误,我似乎不知道该怎么做。 我该如何解决?
PS 这是页面的<head>
部分( kotlin.js
和twf.js
都已链接):
<title>PixiJS Test</title>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/style.css">
<script src="lib/pixi.js"></script>
<script src="lib/kotlin.js"></script>
<script src="lib/twf.js"></script>
PPS我什至在编译之前将@JsName("stringToExpression")
放在Kotlin 代码中的function 之前,但这似乎没有帮助。
看起来这个问题只是“查看您正在更仔细地使用的代码”问题的另一个实例,因为解决方案非常简单。 当我使用console.log(twf)
命令时(因为我确定声明了twf
变量),我得到以下 output:
> Object
> api:
...
> stringToExpression: ƒ stringToExpression( ... )
...
> baseoperations:
...
因此,据我所知,就其工作而言,我不得不使用以下代码来引用 function :
var testTaskString = "a-b/c";
console.log(twf.api.stringToExpression(testTaskString));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.