【问题标题】:Can't link a JS script generated from a Kotlin/JS project using IntelliJ IDEA无法使用 IntelliJ IDEA 链接从 Kotlin/JS 项目生成的 JS 脚本
【发布时间】:2021-03-08 17:31:22
【问题描述】:

如上所述,问题是我无法将编译后的 JS 代码从 Kotlin 项目(称为 twf)链接到我的 web 项目。不管我怎么尝试,Chrome都会输出twf.stringToExpression is not a function之类的错误

就我而言,Kotlin 代码确实可以正确编译,并且输出文件的开头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)
  ...

所以该函数存在,我可以只用一个字符串作为输入来调用它,就像我在index.html 文件中所做的那样(我知道在 HTML 文件中包含一个裸脚本是一个坏习惯,但它是只是一个原型):

<script type="text/javascript">
  ...
  var testTaskString = "a-b/c";
  console.log(twf.stringToExpression(testTaskString));
  ...
</script>

尽管如此,我仍然收到上面提到的错误,我似乎不知道该怎么做。我该如何解决?

附:这是页面的 &lt;head&gt; 部分(kotlin.jstwf.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>

附言我什至在编译之前将@JsName("stringToExpression") 放在 Kotlin 代码中的函数之前,但这似乎没有帮助。

【问题讨论】:

    标签: javascript kotlin


    【解决方案1】:

    看起来这个问题只是“仔细查看您正在使用的代码”问题的另一个实例,因为解决方案非常简单。当我使用 console.log(twf) 命令时(因为我确定声明了 twf 变量),我得到以下输出:

    > Object
      > api:
        ...
        > stringToExpression: ƒ stringToExpression( ... )
        ...
      > baseoperations:
      ...
    

    因此,就我而言,就它的工作原理而言,我不得不使用以下代码来引用该函数:

    var testTaskString = "a-b/c";
    console.log(twf.api.stringToExpression(testTaskString));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-26
      • 2013-10-07
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多