gpt4 book ai didi

javascript - 如何配置 create-react-kotlin-app 以使 kotlinx.serialization 正常工作

转载 作者:行者123 更新时间:2023-12-03 13:38:54 27 4
gpt4 key购买 nike

我一直在尝试使用 create-react-kotlin-app 让 kotlinx.serialization 库与 Kotlin/JS 一起使用

但是,我对 NodeJS 和 webpack 的困惑状况不太熟悉。我做了以下事情:

1) 从 Maven 存储库下载 kotlinx.serialization 库,并将其放在 NodeJS 依赖项旁边,因为到目前为止还没有任何 npm 模块。

2)修改了 node_modules/@jetbrains/kotlin-webpack-plugin/plugin.js 以编译我的库,特别是我将此行添加到了prepareLibraries函数中:

opts.libraries.push(opts.packagesContents[0]["_where"]+"/lib/kotlinx-serialization-runtime-js/build/classes/main/kotlinx-serialization-runtime-js.js")

3) 修改了 node_modules/kotlin-compiler/bin/kotlinc 中的最后一行以启用序列化编译器插件:

${JAVACMD:=java}" $JAVA_OPTS "${java_args[@]}" -cp "${kotlin_app[@]}" "${kotlin_args[@]}" -Xplugin=$KOTLIN_HOME/lib/kotlinx-serialization-compiler-plugin.jar

问题是,当我使用 npm start 运行开发服务器时,它会按预期编译并运行,但是当我运行 npm run build 时,出现以下错误:

Creating an optimized production build...

Failed to compile.

warning: flag is not supported by this version of the compiler: - Xplugin=/home/Project/archetype-frontend-kotlin/node_modules/kotlin-compiler/lib/kotlinx-serialization-compiler-plugin.jar

npm ERR! code ELIFECYCLE

当然,当我删除 -Xplugin 参数时,应用程序会抛出如下异常:

Can't locate argument-less serializer for class Pu…h as lists, please provide serializer explicitly.

(GH 上存在与此相关的问题 https://github.com/Kotlin/kotlinx.serialization/issues/278)

感谢您的帮助

最佳答案

好吧,我想我成功了。

以下是我记得的步骤:

      options.libraries.join(isWindows ? ';' : ':') + ":<absolute_path_to_project>/node_modules/kotlinx-serialization-runtime-js/kotlinx-serialization-runtime-js.meta.js"

  • kotlinx-serialization-runtime-js.jskotlinx-serialization-runtime-js.js.map 复制到 node-modules/.cache/kotlin-webpack

在此yarn start之后似乎能够编译一些使用kotlinx-serialization的测试代码,但是,Idea无法找到kotlinx.serialization 模块来自。

我希望这个答案能够激励那些愿意对这个构建系统进行逆向工程以做出更好修复的人。

关于javascript - 如何配置 create-react-kotlin-app 以使 kotlinx.serialization 正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53585910/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com