kotlinx.html icon indicating copy to clipboard operation
kotlinx.html copied to clipboard

Cannot load kotlinx-html-js

Open feliperce opened this issue 7 years ago • 2 comments
trafficstars

I think it's a bug.because I can load it using gradle, but I can't load it using nothing (only inteliij, without gradle/maven), I already imported the jar and it is working, I can use all jar functions, but when I try to test on navigator (chrome/firefox/opera all tested...) I get the following error:

Uncaught Error: Error loading module 'KotlinToJavaScript'. Its dependency 'kotlinx-html-js' was not found. Please, check whether 'kotlinx-html-js' is loaded prior to 'KotlinToJavaScript'.
    at KotlinToJavaScript.js:5

I understand, but the kotlin-html-js are on the correct place: a

And I put it on <script tag:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Kotlin to Html!</title>
</head>
    <body>

        Que nota você daria para o Kotlin? (0-10) </br>
        <input type="text" id="note">
        <input type="submit" id="submit" value="Enviar">

        <div id="container">

        </div>

        <script type="text/javascript" src="out/production/KotlinToJavaScript/lib/kotlin.js"></script>
        <script type="text/javascript" src="out/production/KotlinToJavaScript/lib/kotlinx-html-js.js"></script>
        <script type="text/javascript" src="out/production/KotlinToJavaScript/KotlinToJavaScript.js"></script>
    </body>
</html>

feliperce avatar Jul 01 '18 08:07 feliperce

возможно вам это поможет. Если посмотрите на начало файла kotlinx-html-js.js, то вероятно у вас будет что то на подобие:

(function (root, factory) { if (typeof define === 'function' && define.amd) define(['exports', 'kotlin'], factory); else if (typeof exports === 'object') factory(module.exports, require('kotlin')); else { if (typeof kotlin === 'undefined') { throw new Error("Error loading module 'kotlinx-html-js'. Its dependency 'kotlin' was not found. Please, check whether 'kotlin' is loaded prior to 'kotlinx-html-js'."); } root['kotlinx-html-js'] = factory(typeof this['kotlinx-html-js'] === 'undefined' ? {} : this['kotlinx-html-js'], kotlin); } }

так вот у меня с css файлом похожая ситуация была и я добавил в начало файла css похожую конструкцию начала файла из kotlinx-html-js! Но так же внимание обратите, что и концовку тоже нужно подредактировать! Так же нужно помнить, что как только у вас в браузере будет исправлена ошибка загрузки вашего js файла, скопируйте его в другое место, так как при build project у вас со 100% вероятность исправленный файл перезапишется и нужно будет повторять все по новой. В моем js начало выглядит так: (function (root, factory) { if (typeof define === 'function' && define.amd) define(['exports', 'kotlin'], factory); else if (typeof exports === 'object') factory(module.exports, require('kotlin')); else { if (typeof kotlin === 'undefined') { throw new Error("Error loading module 'kotlin-css-js'. Its dependency 'kotlin' was not found. Please, check whether 'kotlin' is loaded prior to 'kotlin-css-js'."); } root['kotlin-css-js'] = factory(typeof this['kotlin-css-js'] === 'undefined' ? {} : this['kotlin-css-js'], kotlin); } }(this,function (_, Kotlin) { 'use strict'; var Kind_CLASS = Kotlin.Kind.CLASS; ...

===== а концовка так: ======= ... zIndex = new CSSProperty(); Kotlin.defineModule('kotlin-css-js', _); return _; })); //(module.exports, require('kotlin') //# sourceMappingURL=kotlin-css-js.js.map

poloynikov avatar Nov 23 '19 19:11 poloynikov

Пожалуйста, если у кого нибудь будем время, подскажите, как можно в gradle сделать так чтобы, после компиляции JS модуля, можно было автоматически внести изменения в созданные js файлы, а именно добавить изменения в его начало и в конце файла (в сообщении выше я делал это ручками и думаю, что при окончательной сборки тоже придется ручками изменять жирный jar). Я только учусь, так что, если у Вас будет возможность, с можете ли написать gradle task которая вносить изменения в файл. do last или do first я вроде бы разобрался как использовать, чтобы вашу gradle task вставить после компиляции модуля js. Спсибо за внимание

poloynikov avatar Nov 23 '19 19:11 poloynikov