Kotlin/JS工程构建及编译运行到浏览器

概述

Kotlin/JS 提供了转换 Kotlin 代码、Kotlin 标准库的能力,并且兼容 JavaScript 的任何依赖项。Kotlin/JS 的当前实现以 ES5 为目标。

使用 Kotlin/JS 的推荐方法是通过 kotlin.multiplatform Gradle 插件。它提供了一种集中且便捷的方式来设置与控制以 JavaScript 为目标的 Kotlin 项目。 这包括基本特性, 例如控制应用程序的捆绑,直接从 npm 添加 JavaScript 依赖项等等

搭建 Kotlin/JS 项目

Kotlin/JS 项目使用 Gradle 作为构建系统。为了开发者轻松管理其 Kotlin/JS 项目,我们提供了 kotlin multiplatform Gradle 插件,该插件提供项目配置工具以及用以自动执行 JavaScript 开发中常用的例程的帮助程序

一、添加插件

settings>Plugins>Marketplace
搜索:Kotlin Multiplatform Mobile
在这里插入图片描述

安装插件后重启Android Studio

二、新建Kotlin Multiplatform App 工程

在这里插入图片描述
但是目前该工程仅支持android IOS平台,但是这都不是我们的目标,我们的目标是JS

三、配置JS

在多平台模块的src下创建jsMain文件夹

在这里插入图片描述

接着在build.gradle.kts文件中配置:

在这里插入图片描述

sourceSets 下添加jsMain依赖配置
kotlin 下添加 js(IR)配置
具体配置含义可以在官网上查阅

传送门:
Kotlin/JS IR 编译器
添加对多平台库的依赖关系

到这里基本上已经配置的差不多了

四、调试

1、所有对build.gradle.kts的改动都要运行一下task:KotlinUpgradeYarnLock
用于更新yarn.lock文档
2、在gradle中找到Task:jsRun,双击运行,没有意外的话,会运行成功,获取到编译后的文件列表:这里不贴图了,主要是获取到对应模块的JS文件:KotlinJSTest-shared.js
3、创建运行到浏览器的html文件
在jsMain文件夹下创建:resource>index.html,依赖我们编译后生成的js文件:KotlinJSTest-shared.js
4、再次运行Task:jsRun 如果不出意外的话会成功!大功告成!binggo!

在这里插入图片描述

示例工程传送门

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/324551.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pod 基础 2

pod 进阶 探针 poststart prestop pod的生命周期开始: 重启:k8s的pod重启策略 deployment的yaml文件只能是Always pod的yaml三种模式都可以。 OnFailure:只有状态码非0才会重启,正常退出是不重启的 Never:正常退…

【C语言刷题每日一题#牛客网BC107】矩阵转置

目录 问题描述 思路逐步分析 完整代码实现 结果测试 问题描述 思路逐步分析 首先,根据输入的描述,第一行输入的是两个整数n和m,分别表示一个矩阵(二维数组)的行和列,并且行和列不超过10 根据要求&…

【Java并发】深入浅出 synchronized关键词原理-下

上一篇文章,简要介绍了syn的基本用法和monter对象的结构,本篇主要深入理解,偏向锁、轻量级锁、重量级锁的本质。 对象内存布局 Hotspot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据 (Instance Da…

两步带你解决IDEA 插件下载安装慢、超时、不成功问题

两步带你解决IDEA 插件下载安装慢、超时、不成功问题 1. 查找 国内插件的节点IP地址2. 修改本地hosts文件 > 今天在安装idea中的插件时,又双叒叕出现了这个问题,下载一个几MB的插件巨慢,所以写一下它的解决方案 1. 查找 国内插件的节点IP地…

深入理解Java中资源加载的方法及Spring的ResourceLoader应用

在Java开发中,资源加载是一个基础而重要的操作。本文将深入探讨Java中两种常见的资源加载方式:ClassLoader的getResource方法和Class的getResource方法,并介绍Spring框架中的ResourceLoader的应用。 1. 资源加载的两种方式 1.1 ClassLoader…

【代码随想录】刷题笔记Day45

前言 早上又赖了会床......早睡早起是奢望了现在,新一年不能这样!支棱起来! 377. 组合总和 Ⅳ - 力扣(LeetCode) 这一题用的就是完全背包排列数的遍历顺序:先背包再物品,从前往后求的也是有几…

kali-Linux安装ARL灯塔教程以及timeout of 20000ms exceeded 的解决方法

FLAG:别和妈妈诉苦,她帮不上,也睡不着。 专研方向: docker,ARL资产灯塔系统 每日emo:天冷了,你还在坚持吗? 欢迎各位与我这个菜鸟交流学习 kali安装ARL灯塔教程 1.安装docker环境,…

Pytorch的GPU版本安装,在安装anaconda的前提下安装pytorch

本文基于conda安装GPU版本的PyTorch 一、CUDA 1.下载CUDA 点击下载 找到对应的版本进行下载 (1)打开命令提示符查看自己的版本,输入 nvidia-smi 根据自己的版本进行下载 (2)点击适合自己的版本进行下载 &#…

HackTheBox - Medium - Linux - Awkward

Awkward Awkward 是一款中等难度的机器,它突出显示了不会导致 RCE 的代码注入漏洞,而是 SSRF、LFI 和任意文件写入/追加漏洞。此外,该框还涉及通过不良的密码做法(例如密码重用)以及以纯文本形式存储密码来绕过身份验…

阿里后端实习一面面经

阿里后端实习一面面经 项目中使用到了es,es的作用? elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 es中的重要概念? 群集:一个或多个节点…

Visual Studio 2022进行文件差异比较

前言 Visual Studio 2022在版本17.7.4中发布在解决方案资源管理器中比较文件的功能,通过使用此功能,可以轻松地查看两个文件之间的差异,包括添加、删除和修改的代码行。可以逐行查看差异,并根据需要手动调整和编辑文件内容以进行…

5分钟搞懂AI的可解释性

大家好啊,我是董董灿。 想象一下,如果有一天,有人跑过来突然告诉你,他搞懂了人类大脑记忆的运行机制,你会是什么反应? 你可能会和我一样,把他当做疯子。 因为我觉得这个课题太深奥了&#xf…