【问题标题】:How to pack Reason and Ktor apps together in a bundle with Gradle?如何使用 Gradle 将 Reason 和 Ktor 应用程序打包在一起?
【发布时间】:2018-08-28 13:34:46
【问题描述】:

我有以下结构:

/             -> root
/react-app    -> Reason app (initialized using cli)
/webapp       -> gradle app, maven structure with Gradle build file

我不知道如何构建一切,所以我可以:

  1. 在本地运行服务器以便调试
  2. 制作生产 tar(例如使用 application 插件)

生产

制作应该是这样的:

  • ktor 作为主服务器
  • ktor 应用有 API
  • 所有 react JS/HTML 文件也由 ktor 提供服务

换句话说,我想从单个网络应用程序中提供所有服务。

我知道我可以创建 2 个单独的服务 - 一个用于响应,一个用于 API。但我想将它们捆绑到一个应用程序中。

地方发展

本地开发应该很快。我正在考虑将 React 和 API 部分单独用于本地目的,因为这样更容易在本地运行。但对于生产,我需要从单个应用程序提供这两个服务。

我想要什么

是根目录中的单个 Gradle 并具有模块。虽然 ktor 可以是一个模块,但我不确定如何使用 react 模块。

【问题讨论】:

  • 这取决于“制作生产 tar”的含义——你打算如何在生产中服务 React 应用程序?
  • @OliverCharlesworth 更新了问题

标签: reactjs kotlin reason ktor


【解决方案1】:

我不确定 Kotlin 和 Ktor 部分,但在 Reason/React 方面,我建议 Parcel 将您的 HTML/JS/CSS 资产捆绑成适合静态服务的形式,并使用它作为快速迭代的开发服务器。

Parcel 在大多数情况下需要零配置,您可以将其指向您的入口点资产,通常是您的 UI 项目中的 index.html 文件,并且在生产构建中,它会将所有内容(HTML/JS/CSS)捆绑在 @987654323 中@ 子目录准备就绪。然后只需将您的 Kotlin webapp 指向为 / 路由提供 dist/index.html

对于开发版本,Parcel 将自动在localhost:1234 启动开发服务器并自动重新加载。当您在 UI 上进行迭代时,BuckleScript 增量构建以及 Parcel 重新加载应该非常快——通常几乎是即时的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多