首页 > 编程语言 >下一代 CLI 工具,使用Go语言用于构建令人惊叹的网络应用程序

下一代 CLI 工具,使用Go语言用于构建令人惊叹的网络应用程序

时间:2024-07-31 09:40:36浏览次数:14  
标签:Web gowebly CLI 网络应用 js go Go

大家好,今天给大家分享一个创新的命令行工具Gowebly CLI,它专注于使用Go语言来快速构建现代Web应用程序。

Gowebly CLI 是一款免费开源软件,有助于在后端使用 Go、在前端使用 htmx 和 hyperscript 以及最流行的 CSS 框架轻松构建令人惊叹的 Web 应用程序。

CLI 生成一个随时可用的项目,有助于尽快理解 Go + htmx 技术堆栈,并以最大的开发人员舒适度开始使用它。许多项目元素已经经过优化配置并准备好投入生产。

项目介绍

Golang是一种静态类型编译语言,以简单高效而闻名,非常适合 Web 应用程序开发。Gowebly CLI 利用这些优势,并结合 htmx 和 Alpine.js 的灵活性进行前端开发。

htmx 允许您直接在 HTML 中访问 AJAX、CSS Transitions、WebSockets 和服务器发送事件,而无需编写 JavaScript。

另一方面,Alpine.js 以低成本提供了 Vue 或 React 等大型框架的反应性和声明性。这些技术共同为 Web 开发提供了强大而高效的解决方案。

特色功能

  • 在 Apache 2.0 许可证下 100% 免费和开源。
  • 使用简单,智能 CLI 都会为您完成大部分常规项目设置、创建易于理解的结构,并准备在生产中使用和部署的代码。
  • 跨平台和多架构允许在任何 GNU/Linux 发行版、Microsoft Windows(包括 WSL)和 Apple macOS 上成功运行。
  • 文档齐全,包括许多其他语言的翻译(Русский、简体中文、西班牙语)。
  • 使您能够使用 Go、htmx、hyperscript 或 Alpine.js 库更快地启动新项目。
  • 支持内置的 net/http 包以及最流行的 Go Web 框架和开箱即用的路由器,例如 Fiber、Gin、Echo、Chi、HttpRouter、Gorilla/Mux 和 PocketBase。
  • 开箱即用地支持最流行的 CSS 框架,例如 Tailwind CSS、daisyUI、Flowbite、Preline UI、UnoCSS、Bootstrap 和 Bulma。
  • 前端支持新 JavaScript 运行时环境Bun。
  • 支持使用 Temple 包通过 Go 构建 HTML 的方法。
  • 使用 Air 工具支持 Go 代码和前端文件的实时重新加载模式。
  • 包括用于快速设置的 golangci-lint 基本配置。
  • 即用型 Dockerfile 和 Docker Compose 文件可在任何环境中部署您的应用程序。
  • 可以作为 PWA(渐进式 Web 应用程序)安装在浏览器或移动设备中。
  • 拥有一个用户友好的 Go 代码帮助程序库。

安装使用

使用 Golang

首先,你应该在机器上安装 Go 语言。确保版本为 1.22.0 及以上。

然后运行:

go run github.com/gowebly/gowebly/v2@latest create

使用 Homebrew 安装

添加新仓库

brew tap gowebly/tap

安装 Gowebly

brew install gowebly/tap/gowebly

在 Windows、Ubuntu 和 Fedora 上安装

Github发布页面下载 适用于 Windows、 deb (适用于 Debian、Ubuntu)、 rpm (适用于 CentOS、Fedora)、 apk (适用于 Alpine)或 Arch Linux 软件包的 现成 文件 。

创建你的第一个应用

要在 gowebly 中创建应用程序,您需要运行:

go run github.com/gowebly/gowebly/v2@latest create

或者

gowebly create

创建的项目包含以下文件和文件夹:

  • 模板位于 ./templates 文件夹中。
  • 主 CSS 文件 styles.scss 位于 ./assets 文件夹中。
  • 主 JavaScript 文件 scripts.js 位于该 ./assets 文件夹中。
  • PWA 清单文件 manifest.json 和图像位于该 ./static 文件夹中。

目录结构

.
├── assets
│   ├── scripts.js
│   └── styles.scss
├── static
│   ├── images
│   │   └── gowebly.svg
│   ├── apple-touch-icon.png
│   ├── favicon.ico
│   ├── favicon.png
│   ├── favicon.svg
│   ├── manifest-desktop-screenshot.jpeg
│   ├── manifest-mobile-screenshot.jpeg
│   ├── manifest-touch-icon.svg
│   └── manifest.json
├── templates
│   ├── pages
│   │   └── index.html
│   └── main.html
├── .air.toml
├── .dockerignore
├── .gitignore
├── .prettierignore
├── docker-compose.yml
├── Dockerfile
├── go.mod
├── go.sum
├── handlers.go
├── main.go
├── package.json
├── prettier.config.js
└── server.go

运行项目

要以开发模式运行您的项目,请执行运行命令:

go run github.com/gowebly/gowebly/v2@latest run

或者

gowebly run

项目地址

https://github.com/gowebly/gowebly

标签:Web,gowebly,CLI,网络应用,js,go,Go
From: https://www.cnblogs.com/yunmoom/p/18333890

相关文章

  • ArgoCD 简介
    fork https://github.com/DevopsChina/lab/tree/main/deploy/lab04-argocd  1.ArgoCD简介基于kubernetes的声明式Gitops持续部署工具。持续部署工具有很多,如Jenkins等等,我们为什么选择ArgoCD呢?应用定义,配置和环境变量管理等等,都是声明式的,基于云原生的。......
  • 什么是Ego Status?
    在自动驾驶领域,“EgoStatus”通常指的是自动驾驶车辆自身的状态信息。这个术语是从机器人学和自动化领域借用的,其中“Ego”代表主体或“自我”,即自动驾驶车辆自身。以下是“EgoStatus”可能包含的一些具体信息:位置(Position):车辆在地图上的具体坐标。速度(Velocity):车辆移动......
  • 如何在 GoLand 中使用 gofmt 和 goimports 工具
    如何在GoLand中使用gofmt和goimports工具参考文章GoLand是JetBrains公司开发的一款Go语言集成开发环境(IDE),拥有丰富的代码自动补全、错误提示和代码重构等功能,极大地提高了编程效率。Go语言有一套自带的代码格式化工具——gofmt,它能够自动将非标准的Go代码格式化为......
  • go高并发之路——消息中间件kafka(上)
    一般高并发的业务都是某个时间段的请求量特别大,比如本人负责的直播业务,基本上一天就两个高峰段:早上和晚上的特定时间段。其它的时间里,流量基本都比较平稳。那么面对流量高峰,我们可以采取哪些措施呢?常见的有服务器和DB提前扩容、监控告警(盯监控)、流量削峰、加缓存、网关限流、服务......
  • Go语言---sort 包中sort.Ints()、sort.Strings()、sort.Slice()、sort.SliceStable()、s
    在每一种编程语言中,都会涉及到排序操作。而在Go语言中,其中内置的sort包中提供了根据一些排序函数来对任何序列进行排序的功能。通过这个包中的一些方法,我们可以对一些基本的可以比较大小的类型的切片进行排序,也可以通过实现排序接口的几个特定方法实现自定义排序。sort.I......
  • Python面试题:如何使用Django Rest Framework构建RESTful API
    使用DjangoRestFramework(DRF)构建RESTfulAPI是一个常见且强大的方法。以下是一个详细的指南,帮助你从头开始创建一个基本的Django项目,并使用DRF构建一个RESTfulAPI。环境准备安装Django和DjangoRestFramework:pipinstalldjangodjangorestframewor......
  • golang面试题:json包变量不加tag会怎么样?
    问题json包里使用的时候,结构体里的变量不加tag能不能正常转成json里的字段?怎么答如果变量首字母小写,则为private。无论如何不能转,因为取不到反射信息。如果变量首字母大写,则为public。不加tag,可以正常转为json里的字段,json内字段名跟结构体内字段原名一致。加了tag,从str......
  • 7/30 go协程
    协程是逻辑上优化的线程,不用切换CPU和内核态     组合访问   TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChineseSimplifiedHungarianRussianChineseTraditi......
  • 理解 Go 语言的池Pool
            Go是一种有自动垃圾回收机制的编程语言,采用三色并发标记算法标记对象并回收。和其他没有自动垃圾回收机制的编程语言不同,使用Go语言创建对象时,我们没有回收/释放的心理负担,想创建对象就创建,想用对象就用。        但是,如果想使用Go语言开发一个......
  • 深入浅出Django的路由系统:全面指南与实战示例
    Django的路由系统用于将用户请求的URL与相应的视图函数匹配,它决定了用户访问特定URL时会执行哪个视图函数。通过URL配置,路径匹配,路径参数,命名路由,路由命名空间,包含其他URL配置,以及反向解析,Django实现了高效且灵活的URL路由管理。1.URL配置URL配置是Django项目中定义URL与视......