English | Русский | 中文 | Español
这款 CLI 工具可在后端使用 Go,在前端使用 htmx 和 hyperscript 以及最流行的原子/实用工具优先 CSS 框架,轻松构建令人惊叹的网络应用程序。
特点
- 根据 Apache 2.0 许可,100%免费开源;
- 适用于任何知识水平和技术专长的开发人员;
- 文档齐全,作者提供了大量提示和帮助;
- 智能 CLI,可完成大部分常规设置和生产准备工作;
- 有助于更快地进入 Go + htmx + hyperscript 技术栈;
- 可在项目中添加即用型和完全定制的原子/实用工具优先 CSS 框架;
- 支持 CSS 样式的实时重载模式。
- 为你的 Go 代码提供一个用户友好型助手库;
- 包含如何使用该框架的综合示例。
💬 作者的话: 为了让您充分了解该项目,我们录制了一段简短的 📺视频,并准备了一篇介绍 📝文章,演示了
gowebly
CLI 的主要功能。

首先,下载 并安装 Go。需要安装 1.21
(或更高版本)。
现在,无需安装即可使用 gowebly
。只需 go run
即可创建一个新项目,并使用
默认 配置:
go run github.com/gowebly/gowebly@latest create
就是这样!🔥 一个精彩的网络应用程序,使用内置的 net/http 包(作为 Go 后端)、htmx 和 hyperscript,可以在你的 Go HTML 模板中使用。
如果还想通过 Golang 将 gowebly
CLI 安装到系统中,请使用 go install
命令:
go install github.com/gowebly/gowebly@latest
GNU/Linux 和 Apple macOS 用户可以通过 Homebrew 安装 gowebly
CLI。
点击新公式:
brew tap gowebly/tap
安装 gowebly
:
brew install gowebly/tap/gowebly
请随意使用我们 官方 Docker 镜像 中的 gowebly
CLI,并在隔离的容器中运行它:
docker run --rm -it -v ${PWD}:${PWD} -w ${PWD} gowebly/gowebly:latest create
从 Releases 页面为 Windows、deb
、rpm
、apk
或 Arch Linux
软件包下载现成的 exe
文件。
为了获得完整的使用指南并理解 gowebly
CLI 的基本原理,我们在 README 文件中对每条命令都做了全面的解释。
💬 作者的话 我们一直非常珍惜您的时间,并希望您能尽快开始在这个超棒的技术栈上构建真正出色的网络产品!
我们希望您能找到所有问题的答案!👌 但是,如果您没有找到所需的信息,请随时创建一个 issue 或发送一个 PR 到此版本库。
命令在当前文件夹下创建默认配置文件(.gowebly.yml
)。
gowebly init
💡 注意:当然,如果你对新项目的以下默认配置感到满意,也可以跳过这一步:
- Go 模块 (
go.mod
) 和package.json
名称设置为项目;- 后端部分不使用任何 Go 框架(仅使用内置的 net/http 包);
- 前端部分不使用任何 CSS 框架(仅使用代码示例的默认样式);
- 前端部分的 JavaScript 运行环境将使用 Node.js;
- 服务器端口为
5000
,超时(秒): 读取超时 5 秒,写入超时 10 秒;- 最新版本的 htmx 和 hyperscript。

通常情况下,创建的配置文件包含以下选项:
backend:
module_name: project # (string) option can be any name of your Go module (for example, 'github.com/user/project')
go_framework: default # (string) option can be one of the values: 'fiber', 'echo', 'chi', or 'default'
port: 5000 # (int) option can be any port that is not taken up on your system
timeout:
read: 5 # (int) option can be any number of seconds, 5 is recommended
write: 10 # (int) option can be any number of seconds, 10 is recommended
frontend:
package_name: project # (string) option can be any name of your package.json (for example, 'project')
css_framework: default # (string) option can be one of the values: 'tailwindcss', 'unocss', or 'default'
runtime_environment: default # (string) option can be one of the values: 'bun', or 'default'
htmx: latest # (string) option can be any existing version
hyperscript: latest # (string) option can be any existing version
但是,您可以为项目后台选择任何 Go 框架:
Go framework | 说明 |
---|---|
default |
不使用任何 Go 框架(仅使用内置的 net/http 软件包) |
fiber |
使用 Go 后端和 Fiber 网络框架 |
echo |
使用 Go 后端和 Echo 网络框架 |
chi |
使用 Go 后端和 chi 可组合路由器 |
此外,您还可以为您的项目选择 htmx、hyperscript 和最流行的原子/实用工具优先 CSS 框架之一的版本:
CSS framework | 说明 |
---|---|
default |
不使用任何 CSS 框架(代码示例仅使用默认样式) |
tailwindcss |
使用 Tailwind CSS 作为 CSS 框架 |
unocss |
使用 UnoCSS 作为 CSS 框架 |
此外,您还可以为前端部分设置一个 JavaScript 运行环境:
JavaScript runtime | 说明 |
---|---|
default |
将 Node.js 用作 JavaScript 运行环境 |
bun |
将 Bun 用作 JavaScript 运行环境 |
命令创建一个新项目,该项目包含 Go 后端、htmx 和 hyperscript 以及(可选)原子/实用工具优先 CSS 框架。
gowebly create
💡 注意:如果不运行
init
命令来创建配置文件(.gowebly.yml
),则gowebly
CLI 会以 default 配置创建一个新项目。

每次为项目执行 create
命令时:
- CLI 会验证配置并将所有设置应用到当前项目;
- CLI 准备项目的后台部分(生成项目结构和所需的实用程序文件,运行
go mod tidy
); - CLI 准备项目的前端部分(生成所需的实用程序文件,首次运行
npm|bun install
和npm|bun run build:dev
); - CLI 会下载最小化版本的 htmx 和 hyperscript(来自官方和可信的 unpkg.com CDN)到
./static
文件夹,并将它们作为分隔的<script>
标记(位于<body>
标记的底部)放入 Go HTML 模板templates/main.html
。
通常情况下,创建的项目包含以下文件和文件夹:
.
├── assets
│ └── styles.css
├── static
│ ├── favicon.ico
│ ├── htmx.min.js
│ ├── hyperscript.min.js
│ └── styles.css
├── templates
│ ├── pages
│ │ └── index.html
│ └── main.html
├── .gitignore
├── go.mod
├── go.sum
├── handlers.go
├── main.go
├── package-lock.json
├── package.json
└── server.go
命令在开发(非生产)模式下运行项目。
gowebly run
💡 注意:如果不运行
init
命令来创建配置文件(.gowebly.yml
),则gowebly
CLI 会以 default 配置运行项目。

每次为项目执行 run
命令时:
- CLI 会验证配置并将所有设置应用到当前项目;
- CLI 准备项目的前端部分(运行
npm|bun run watch
); - CLI 将所选 CSS 框架的开发(非生产)版本放入
./static
文件夹,并将其作为<link>
标记(位于<head>
标记的底部)放入 Go HTML 模板templates/main.html
; - 通过简单的
go run
命令,CLI 可使用默认配置(或.gowebly.yml
配置文件)中的设置启动项目的后端。
命令来为生产构建项目,并为部署准备 Docker 文件。
gowebly build [OPTION]
💡 注意:如果不运行
init
命令来创建配置文件(.gowebly.yml
),则gowebly
CLI 会以 default 配置来构建项目。

您可以添加以下选项:
Option | 说明 | 是否需要? |
---|---|---|
--skip-docker |
跳过生成 Docker 文件的过程(如果您有自己的 Docker 文件,这将很有帮助) | 没有 |
每次为项目执行 build
命令时:
- CLI 会验证配置并将所有设置应用到当前项目;
- CLI 会下载最小化版本的 htmx 和 hyperscript(来自官方和可信的 unpkg.com CDN)到
./static
文件夹,并将它们作为分隔的<script>
标记(位于<body>
标记的底部)放入 Go HTML 模板templates/main.html
; - CLI 为选定的 CSS 框架准备一个生产版本,并将其作为一个
<link>
标记(位于 Go HTML 模板templates/main.html
中<head>
标记的底部); - 如果未设置
-skip-docker
选项,CLI 会在项目文件夹根目录下生成清晰且文档齐全的 Docker 文件(.dockerignore
、Dockerfile
、docker-compose.yml
),以便通过 Portainer (推荐)或手动将其部署到远程服务器的隔离容器中。
gowebly
CLI 有一个用户友好的 helpers 库,可用于编写代码。这将帮助您以更快的速度在
Go 中构建精美的网络应用程序。
go get -u github.com/gowebly/helpers
💡 注意:
create
命令创建的 Go 后端已经包含了gowebly helpers
库,但你也可以在其他项目中使用这些助手。
请告诉我们,您有多少次不得不从头开始一个新项目,并进行痛苦的手动配置? 进行痛苦的手动配置?🤔 特别是当你刚刚熟悉一种新技术或堆栈时,一切对你来说都是新的。
对于包括我们在内的许多开发人员来说,这个过程尽可能乏味甚至令人沮丧,而且没有任何有用的工作量。这是一个非常令人沮丧的过程,会让任何开发人员远离技术。
为什么不把这些可怕的手工工作交给机器呢?让它们为我们完成所有的艰苦工作,我们只需创建出色的网络产品,而不必考虑构建和部署。
这就是我们创建 gowebly
CLI 及其助手库的原因,它可以帮助您使用 htmx、hyperscript 和流行的原子/实用工具优先 CSS
框架,在 Go 语言中创建令人惊叹的网络应用程序。
我们就是来帮你(和我们自己)免去这些日常的痛苦的!✨
💬 作者的话: 此前,我们已经拯救过世界一次,那就是 Create Go App(没错,那也是我们的项目)。 GitHub stars 对这个项目的统计不会说谎:超过 2.2 千名不同国家、不同水平的开发者通过这个 CLI 工具启动了一个新项目。
如果您喜欢 gowebly
项目,并发现它对您的工作很有用,请给它一个 🌟 GitHub Star 并点击 👁️ Watch 以避免错过有关新版本的通知!

现在,我邀请您参与这个项目!让我们共同努力,为开发人员打造当今网络上最实用的工具。
- Issues:提出问题并提交您的功能。
- Pull requests:提交您对当前版本的改进。
欢迎您提交 PR 和问题!谢谢 😘
gowebly
是根据 Apache 2.0 License 授权的免费开源软件,由
Vic Shóstak 创建和支持,其中 🩵 代表人和机器人。 根据
Creative Commons 许可 发布的官方徽标 (CC BY-SA
4.0 International).