2

我正在开发一个使用kotlinjs for nodejs的项目,我开始学习协程并将它们集成到我的代码中,以告别回调地狱。

我设法让协程工作,我的代码可以编译和执行,一切似乎都很好

...除了:IDE 仍然显示错误。我为了让协程运行而添加的其他库似乎让我感到困惑。

我目前正在摆弄库依赖项,有时一些错误消失了,但随后一些代码变红了,这在之前还可以......

这就是我所看到的:

情况1:

第一种情况下的模块依赖关系 第一种情况下的代码

无法访问类 'kotlinx.coroutines.experimental.CoroutineContext'。检查您的模块类路径是否存在缺失或冲突的依赖项

案例二:

第二种情况下的模块依赖关系 第二种情况的代码

未解决的参考:JsModule

修饰符“外部”不适用于“类”

你看,launch当我添加 时被识别stdlib,但是 IDE 抱怨其他两个错误。

再次请注意:在这两种情况下,实际编译都是成功的!

我正在使用IntelliJ 2018.1Kotlin Plugin 1.2.41

4

1 回答 1

0

感谢youtrack.jetbrains的Alexander Chernikov,我可以解决我的问题。

我引用他的解释:

问题是 JavaScript 库应该标有特殊属性才能被识别。当它们从pom.xml或导入时build.gradle,会设置此标记,因此该功能有效。在您的项目中,它们没有被标记。

目前,要手动更正库,请打开.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_js_1_2_41.xml.idea/libraries/org_jetbrains_kotlinx_kotlinx_coroutines_core_js_0_22_5.xml. 在这两个文件中找到type="repository"并将其替换为type="kotlin.js". 确保 IDEA 看到变化。(您可以退出 IDEA,进行更改并重新启动。)

然后您可以仅将这两个库保留在依赖项中。编辑器应该工作。

这是问题链接: https ://youtrack.jetbrains.com/issue/KT-24575

在那里,我还附上了一个有问题的示例项目。

于 2018-05-25T07:08:33.377 回答