Я пытался заставить библиотеку kotlinx.serialization работать с Kotlin / JS, используя create-реагировать-kotlin-приложение
Однако я не очень знаком с огромным беспорядком nodeJS и webpack.Я сделал следующее:
1) Загрузил библиотеку kotlinx.serialization из репозитория maven и поместил ее в стороне от зависимостей 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
Дело в том, что при запуске сервера devиспользуя npm start, он компилируется и запускается, как и ожидалось, но когда я запускаю npm run build, я получаю следующую ошибку:
Создание оптимизированной производственной сборки ...
Не удалосьcompile.
предупреждение: флаг не поддерживается этой версией компилятора: - Xplugin = / home / Project / archetype-frontend-kotlin / node_modules / kotlin-compiler / lib / kotlinx-serialization-compiler-plugin.jar
npm ERR!код ELIFECYCLE
И, конечно, когда я удаляю аргумент -Xplugin, приложение выдает следующие исключения:
Не удается найти сериализатор без аргументов для класса Pu… H в качестве списков, пожалуйста, предоставьте сериализатор явно.
(Существует проблема с GH, связанная с этим https://github.com/Kotlin/kotlinx.serialization/issues/278)
Спасибо за любую помощь