簡體   English   中英

無法使用 IntelliJ IDEA 鏈接從 Kotlin/JS 項目生成的 JS 腳本

[英]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.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>

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM