Skip to content

Latest commit

 

History

History
428 lines (330 loc) · 18.5 KB

README_ES.md

File metadata and controls

428 lines (330 loc) · 18.5 KB

gowebly – Una herramienta CLI de última generación para crear increíbles aplicaciones web en Go utilizando htmx e hyperscript

Go version Go report Code coverage License

English | Русский | 中文 | Español

Esta herramienta CLI puede construir fácilmente increíbles aplicaciones web con Go en el backend, utilizando htmx & hyperscript y los más populares atomic/utility-first frameworks CSS en el frontend.

Características:

  • 100% gratis y de código abierto bajo la licencia Apache 2.0 licencia;
  • Para cualquier nivel de conocimiento y experiencia técnica del desarrollador;
  • Bien documentado, con muchos consejos y ayudas de los autores;
  • CLI inteligente que hace la mayor parte de la rutina de configuración y preparación para la producción;
  • Ayuda a entrar más rápidamente en la pila tecnológica Go + htmx + hyperscript;
  • La posibilidad de añadir simplemente a tu proyecto un framework CSS atómico/utility-first listo para usar y completamente personalizado;
  • Admite el modo live-reloading para sus estilos CSS.
  • Dispone de una biblioteca de ayudantes de fácil uso para su código Go;
  • Contiene un completo ejemplo de cómo utilizarlo fuera de la caja.

💬 De los autores: Para que conozcas a fondo el proyecto, hemos grabado un breve 📺 vídeo y preparado un 📝 artículo de introducción en el que se muestran las principales características de la CLI gowebly.

gowebly logo

⚡️ Inicio rápido

Primero, descarga e instala Go. Se requiere la versión 1.21 (o superior).

Ahora, puedes utilizar gowebly sin instalación. Simplemente, go run` para crear un nuevo proyecto con una configuración por defecto:

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

¡Ya está! 🔥 Una maravillosa aplicación web, usando el paquete integrado net/http (como backend de Go), htmx & hyperscript está disponible en tus plantillas HTML de Go.

🔹 Un completo Go-way de inicio rápido

Si todavía quieres instalar gowebly CLI en tu sistema por Golang, usa el comando go install:

go install github.com/gowebly/gowebly@latest

🍺 Homebrew-manera de inicio rápido

GNU/Linux y Apple macOS usuarios disponibles manera de instalar gowebly CLI a través de Homebrew.

Toque una nueva fórmula:

brew tap gowebly/tap

Instale gowebly:

brew install gowebly/tap/gowebly

🐳 Docker-manera de inicio rápido

Siéntete libre de usar gowebly CLI desde nuestra imagen Docker oficial y ejecutarlo en el contenedor aislado:

docker run --rm -it -v ${PWD}:${PWD} -w ${PWD} gowebly/gowebly:latest create

📦 Otra forma de empezar rápidamente

Descargue archivos exe para Windows, deb, rpm, apk o Arch Linux desde la página Releases.

📖 Guía completa del usuario

Para obtener una guía completa de uso y comprender los principios básicos de la CLI gowebly, hemos preparado una explicación exhaustiva de cada comando a la vez en este archivo README.

💬 De los autores: Siempre valoramos tu tiempo y queremos que empieces a crear productos web realmente geniales en esta impresionante pila tecnológica lo antes posible.

Esperamos que encuentres respuesta a todas tus preguntas 👌 Pero, si no encuentras la información que necesitas, no dudes en crear una issue o enviar un PR a este repositorio.

init

Comando para crear un archivo de configuración por defecto (.gowebly.yml) en la carpeta actual.

gowebly init

💡 Nota: Por supuesto, puedes saltarte este paso si te sientes cómodo con la siguiente configuración por defecto para tu nuevo proyecto:

  • Los nombres de los módulos Go (go.mod) y package.json se establecen en project;
  • Sin ningún framework Go para la parte backend (sólo paquete integrado net/http);
  • Sin ningún framework CSS para la parte frontend (sólo estilos por defecto para el código de ejemplo);
  • El entorno de ejecución JavaScript para la parte frontend utilizará Node.js;
  • El puerto del servidor es 5000, tiempo de espera (en segundos): 5 para lectura, 10 para escritura;
  • Últimas versiones de htmx & hyperscript.
gowebly init

Normalmente, un archivo de configuración creado contiene las siguientes opciones:

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

Pero, puedes elegir cualquier Go framework para el backend de tu proyecto:

Go framework Descripción
default No uses ningún framework Go (solo el paquete integrado net/http)
fiber Utilizar un backend Go con el framework web Fiber
echo Utilizar un backend Go con el framework web Echo
chi Utilizar un backend Go con el enrutador componible chi

Además, puedes elegir versiones de htmx, hyperscript, y uno de los más populares atomic/utility-first CSS framework para tu proyecto:

CSS framework Descripción
default No utilice ningún framework CSS (solo estilos por defecto para el ejemplo de código)
tailwindcss Utilizar Tailwind CSS como framework CSS
unocss Utilizar UnoCSS como framework CSS

Además, puede establecer uno de los entornos de ejecución de JavaScript para su parte frontend:

JavaScript runtime Descripción
default Utilizar Node.js como en torno de ejecución de JavaScript
bun Utilizar Bun como en torno de ejecución de JavaScript

create

Comando para crear un nuevo proyecto con el backend Go, htmx & hyperscript, y (opcionalmente) atomic/utility-first CSS framework.

gowebly create

💡 Nota: Si no ejecutas el comando init para crear un archivo de configuración (.gowebly.yml), el CLI de gowebly crea un nuevo proyecto con una configuración por defecto.

gowebly create

Cada vez que haga crear comando para su proyecto:

  1. CLI valida la configuración y aplica todos los ajustes al proyecto actual;
  2. CLI prepara la parte backend de tu proyecto (genera la estructura del proyecto y los archivos de utilidades necesarios, ejecuta go mod tidy);
  3. CLI prepara la parte frontend de tu proyecto (genera los archivos de utilidades necesarios, ejecuta npm|bun install y npm|bun run build:dev por primera vez);
  4. CLI descarga versiones minimizadas de htmx y hyperscript (desde el CDN oficial y de confianza unpkg.com) a la carpeta ./static y las coloca como etiquetas separadas <script> (al final de la etiqueta <body>) en la plantilla Go HTML templates/main.html.

Típicamente, un proyecto creado contiene los siguientes archivos y carpetas:

.
├── 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

Comando para ejecutar su proyecto en modo desarrollo (no producción).

gowebly run

💡 Nota: Si no ejecutas el comando init para crear un fichero de configuración (.gowebly.yml), el CLI de gowebly ejecuta tu proyecto con una configuración por defecto.

gowebly run

Cada vez que haga run comando para su proyecto:

  1. CLI válida la configuración y aplica todos los ajustes al proyecto actual;
  2. CLI prepara la parte frontend de tu proyecto (ejecuta npm|bun run watch);
  3. CLI prepara una versión de desarrollo (no de producción) del framework CSS seleccionado en la carpeta ./static y lo coloca como una etiqueta <link> (al final de la etiqueta <head>) en la plantilla Go HTML templates/main.html;
  4. CLI inicia el backend de un proyecto con los ajustes de la configuración por defecto (o del archivo de configuración .gowebly.yml) mediante un simple comando go run.

build

Comando para construir su proyecto para producción y preparar los archivos Docker para el despliegue.

gowebly build [OPTION]

💡 Nota: Si no ejecutas el comando init para crear un archivo de configuración (.gowebly.yml), el CLI de gowebly construye tu proyecto con una configuración por defecto.

gowebly build

Puedes añadir las siguientes opciones:

Opción Descripción Requerido?
--skip-docker Omitir el proceso de generación de los archivos Docker (es útil si usted tiene su propio) no

Cada vez que haga build comando para su proyecto:

  1. CLI valida la configuración y aplica todos los ajustes al proyecto actual;
  2. CLI descarga versiones minimizadas de htmx y hyperscript (desde el CDN oficial y de confianza unpkg.com) a la carpeta ./static y las coloca como etiquetas separadas <script> (al final de la etiqueta <body>) en la plantilla Go HTML templates/main.html;
  3. CLI prepara una versión de producción del CSS framework seleccionado y lo coloca como una etiqueta <link> (al final de la etiqueta <head>) en la plantilla Go HTML templates/main.html;
  4. Si la opción --skip-docker no está activada, CLI genera unos archivos Docker claros y bien documentados (.dockerignore, Dockerfile, docker-compose.yml) en la raíz de la carpeta del proyecto para desplegarlo en contenedores aislados vía Portainer (recomendado), o manualmente, a tu servidor remoto.

🙋 Ayudas fáciles de usar

La CLI gowebly tiene una librería de helpers amigables para tu código. Esto te ayudará a empezar a construir hermosas aplicaciones web en Go aún más rápido.

go get -u github.com/gowebly/helpers

💡 Nota: La librería gowebly helpers está ya incluida en el backend Go que se crea con el comando create, pero puedes usar estos helpers en otros proyectos también.

🎯 Motivación para crear

Cuéntanos, ¿cuántas veces has tenido que empezar un nuevo proyecto desde cero y has tenido que hacer dolorosas configuraciones manuales? 🤔 Especialmente, cuando recién te estás familiarizando con una nueva tecnología o stack, donde todo es nuevo para ti.

Para muchos desarrolladores, incluidos nosotros, este proceso es lo más tedioso e incluso deprimente posible, y no conlleva ninguna carga de trabajo útil. Es un proceso muy frustrante que puede alejar mucho a cualquier desarrollador de la tecnología.

¿Por qué no dar todo ese horrible trabajo manual a las máquinas? Dejemos que hagan todo el trabajo duro por nosotros, y nos limitaremos a crear increíbles productos web sin tener que pensar en compilar y desplegar.

Es por eso que hemos generado la CLI gowebly y su biblioteca de ayudantes, que le ayuda a iniciar una increíble aplicación web en Go utilizando htmx, hyperscript y populares atómica/utilidad-primero frameworks CSS.

¡Estamos aquí para salvarte (y salvarnos) de este dolor rutinario! ✨

💬 De los autores: Anteriormente, ya hemos salvado el mundo una vez, fue Create Go App (sí, ese también es nuestro proyecto). Las estadísticas de GitHub stars de este proyecto no pueden mentir: más de 2.2k desarrolladores de cualquier nivel y diferentes países comienzan un nuevo proyecto a través de esta herramienta CLI.

🏆 Una cooperación beneficiosa para todos

¡Si te ha gustado el proyecto gowebly y te ha resultado útil para tus tareas, por favor, dale un 🌟 GitHub Star y haz clic en 👁️ Watch para no perderte las notificaciones sobre nuevas versiones!

gowebly star and watch

Y ahora, ¡te invito a participar en este proyecto! Trabajemos juntos para crear la herramienta más útil para desarrolladores en la web hoy en día.

  • Issues: haz preguntas y envía tus funcionalidades.
  • Pull requests: envía tus mejoras a la corriente.

¡Tus PR y issues son bienvenidos! Gracias 😘

🌟 Guardianes de la Galaxia

gowebly stargazers

⚠️ Licencia

gowebly es un software libre y de código abierto licenciado bajo la Licencia Apache 2.0, creado y soportado por Vic Shóstak con 🩵 para personas y robots. Logotipo oficial distribuido bajo Licencia Creative Commons (CC BY-SA 4.0 International).