Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何配置create react kotlin应用程序以使kotlinx.serialization正常工作_Javascript_Reactjs_Serialization_Kotlin_Compiler Errors - Fatal编程技术网

Javascript 如何配置create react kotlin应用程序以使kotlinx.serialization正常工作

Javascript 如何配置create react kotlin应用程序以使kotlinx.serialization正常工作,javascript,reactjs,serialization,kotlin,compiler-errors,Javascript,Reactjs,Serialization,Kotlin,Compiler Errors,我一直在尝试使用create-react-Kotlin应用程序使kotlinx.serialization库与Kotlin/JS一起工作 然而,我不太熟悉巨大的节点和网页包混乱。 我做了以下工作: 1) 从maven存储库a下载了kotlinx.serialization库,并将其定位在nodeJS依赖项旁边,因为到目前为止没有任何npm模块用于此 2) 修改了节点\u modules/@jetbrains/kotlin webpack plugin/plugin.js以编译我的库,特别是我将这

我一直在尝试使用create-react-Kotlin应用程序使kotlinx.serialization库与Kotlin/JS一起工作

然而,我不太熟悉巨大的节点和网页包混乱。 我做了以下工作:

1) 从maven存储库a下载了kotlinx.serialization库,并将其定位在nodeJS依赖项旁边,因为到目前为止没有任何npm模块用于此

2) 修改了节点\u 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) 修改了节点/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运行dev服务器时,它会按照预期进行编译和运行,但是当我运行npm run build时,我得到了以下错误:

正在创建优化的生产构建

未能编译

警告:此版本的编译器不支持标志:- Xplugin=/home/Project/archetype frontend kotlin/node_modules/kotlin compiler/lib/kotlinx-serialization-compiler-plugin.jar

npm错误!代码失效循环

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

找不到类Pu…h的无参数序列化程序作为列表,请显式提供序列化程序

(有一个与此相关的GH问题)


谢谢你的帮助好的,我想我成功了

以下是我记忆中的步骤:

  • 按照中的建议,did
    npm弹出了
    并添加了
    plugin:require.resolve('kotlin-compiler/lib/kotlinx serialization compiler plugin.jar'),
    webpack kotlin-*.js
    文件中(在
    new KotlinWebpackPlugin
    之后)

  • 从maven()下载编译的运行时,并将其解压缩到
    节点模块/kotlinx序列化运行时js

  • 通过添加库路径对kotlin compiler.js进行黑客攻击(一定有更好的方法!):

options.libraries.join(isWindows?;”:“:”)+“:/node_modules/kotlinx序列化运行时js/kotlinx序列化运行时js.meta.js”
  • kotlinx序列化运行时js.js
    kotlinx序列化运行时js.js.map
    复制到
    node modules/.cache/kotlin webpack
在此
纱线开始之后
似乎能够编译一些使用
kotlinx序列化的测试代码
,但是Idea无法找到
kotlinx.serialization
模块的来源


我希望这个答案能启发那些愿意反向工程这个构建系统的人,以便做出更好的修复。

你能展示产生这个问题的代码吗?你到底是如何“将它定位在nodeJS依赖项之外”的?我现在也有同样的挣扎,我从maven那里得到的东西与“node_模块”中的目录有不同的结构。
      options.libraries.join(isWindows ? ';' : ':') + ":<absolute_path_to_project>/node_modules/kotlinx-serialization-runtime-js/kotlinx-serialization-runtime-js.meta.js"