Gowebly CLI
新一代 CLI 工具,可轻松使用
Go在后端创建出色的 Web 应用程序,使用htmx、hyperscript或Alpine.js在前端创建出色的 Web 应用程序,
并使用最流行的CSS框架。
↘ Gowebly CLI 官方文档 ↙
English · Русский ·简体中文· Español
↘ 将项目链接分享给你的朋友 ↙
嘿,我的开发者朋友们!👋
我好久没来了,是吧?很抱歉这段时间没出现,不过是有原因的……其中一个原因我将在本文中谈到。
所以,这是我新开发的命令行工具,名为gowebly 👇
它是一款新一代 CLI 工具,可以轻松地使用 Go 在后端(net/http、Fiber、Echo、chi等)、htmx和hyperscript,以及最流行的原子/实用优先CSS 框架(Tailwind CSS、UnoCSS等)在前端创建出色的 Web 应用程序。
您的项目中还包含了完全配置好的Docker文件。
CLI的主要目的gowebly是简化创建新项目的过程。而且它在这方面做得非常出色!但与其听人说一百遍,不如亲眼看看:
首先,你需要安装它。可以通过以下方式完成安装:
💡 注意:无论您选择哪种方式安装
goweblyCLI,它都能正常工作。
goweblyCLI 安装到系统后,您可以使用以下命令:init,,,和create。runbuild
让我们仔细看看它们😊
💡 注意:另外,请记住,该
gowebly项目的文档已经翻译成:Русский、中文和Español。当然,原文是英语。
init命令在当前文件夹中创建默认配置文件( )的命令。.gowebly.yml
gowebly init每次在空文件夹中执行命令时:
.gowebly.yml配置文件。通常情况下,创建的配置文件包含以下选项:
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框架 | 描述 |
|---|---|
default |
不要使用任何 Go 框架(只使用内置的net/http包) |
fiber |
使用基于Fiber Web 框架的Go 后端 |
echo |
使用 Go 后端和Echo Web 框架 |
chi |
使用 Go 后端和chi可组合路由器 |
此外,您还可以为您的项目选择htmx、hyperscript的版本,以及最流行的原子/实用优先CSS 框架之一:
| CSS框架 | 描述 |
|---|---|
default |
请勿使用任何 CSS 框架(代码示例中仅使用默认样式)。 |
tailwindcss |
使用Tailwind CSS作为 CSS 框架 |
unocss |
使用UnoCSS作为 CSS 框架 |
此外,您还可以为前端部分设置一个 JavaScript 运行时环境:
create命令使用Go后端、htmx和hyperscript以及(可选的)atomic/utility-first CSS 框架创建一个新项目的命令。
💡 注意:如果您不运行
init创建配置文件的命令(.gowebly.yml), CLI 将创建一个具有默认gowebly配置的新项目。
每次你gowebly create为你的项目发出命令时:
go mod tidy);npm|bun install并npm|bun run build:dev首次运行);./static<script><body>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
run命令以开发(非生产)模式运行项目的命令。
💡 注意:如果您不运行
init命令来创建配置文件(.gowebly.yml),goweblyCLI 将使用默认配置运行您的项目。
每次你gowebly run为你的项目发出命令时:
npm|bun run build:dev);./static文件夹中,并将其作为<link>标签(位于标签的底部<head>)放置在 Go HTML 模板中templates/main.html;.gowebly.ymlCLI通过一个简单的命令,使用默认配置(或配置文件)中的设置启动项目的后端go run。build命令命令用于构建生产环境的项目并准备用于部署的 Docker 文件。
💡 注意:如果您不运行
init命令来创建配置文件(.gowebly.yml), CLI 将使用默认gowebly配置构建您的项目。
您还可以添加以下选项:
| 选项 | 描述 | 必需的? |
|---|---|---|
--skip-docker |
跳过 Docker 文件的生成过程(如果您有自己的 Docker 文件,这将很有帮助)。 | 不 |
每次你gowebly build为你的项目发出命令时:
./static<script><body>templates/main.html<link>标签(位于标签底部)放置<head>在 Go HTML 模板中templates/main.html;--skip-docker生成清晰且文档齐全的 Docker 文件(.dockerignore,, ) Dockerfile,以便通过Portainer(推荐)将其部署到隔离容器中,或者手动部署到远程服务器。docker-compose.yml告诉我,你是不是经常需要从零开始创建一个新项目,然后进行繁琐的手动配置?🤔 特别是当你刚开始接触一项新技术或技术栈时,一切都是全新的。
对包括我在内的许多开发者来说,这个过程极其枯燥乏味,甚至令人沮丧,而且没有任何实际的工作量。这是一个非常令人沮丧的过程,足以让任何开发者对技术产生抵触情绪。
为什么不把所有那些繁琐的手工工作都交给机器呢?让它们替我们完成所有辛苦的工作,我们只需要专注于开发出色的网络产品,而不用考虑构建和部署的问题。
这就是我创建gowebly CLI及其助手库的原因,它可以帮助您使用htmx、hyperscript和流行的原子/实用优先CSS 框架在Go中启动出色的 Web 应用程序。
我来拯救你(也拯救我自己)于这种日常的痛苦之中!✨
之前,我已经拯救过世界一次了,那就是Create Go App(没错,那也是我的项目)。这个项目的GitHub 星标数不会说谎:超过2200 位来自不同国家、不同水平的开发者通过这个命令行工具创建了新项目。
现在,我诚挚地邀请您参与这个项目!让我们携手合作,共同打造当今网络上最实用的开发者工具。
欢迎提交 PR 和问题!谢谢 😘
如果你想在这个博客上看到更多类似的文章,请在下方留言并订阅我。谢谢!😻
❗️您可以通过Boosty平台支持我,既可以长期支持,也可以一次性支持。所有收益都将用于支持我的开源软件项目,并激励我为社区创作新的产品和文章。
当然,您也可以帮助我让开发者的工作变得更好!只需以贡献者的身份加入我的项目即可。很简单!
我最需要你帮助(和点赞)的项目👇
我的其他一些小项目:yatr、gosl、json2csv、csv2api。
文章来源:https://dev.to/koddr/a-next- Generation-cli-tool-for-building-amazing-web-apps-in-go-using-htmx-hyperscript-336d