Skip to content

Instantly share code, notes, and snippets.

View ygorch's full-sized avatar
🦊

Ygor Chaves ygorch

🦊
View GitHub Profile
var x4=Object.defineProperty,R4=Object.defineProperties;var j4=Object.getOwnPropertyDescriptors;var N1=Object.getOwnPropertySymbols;var $3=Object.prototype.hasOwnProperty,W3=Object.prototype.propertyIsEnumerable;var _2=(v,r,a)=>r in v?x4(v,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):v[r]=a,D=(v,r)=>{for(var a in r||(r={}))$3.call(r,a)&&_2(v,a,r[a]);if(N1)for(var a of N1(r))W3.call(r,a)&&_2(v,a,r[a]);return v},z=(v,r)=>R4(v,j4(r));var V1=(v,r)=>{var a={};for(var h in v)$3.call(v,h)&&r.indexOf(h)<0&&(a[h]=v[h]);if(v!=null&&N1)for(var h of N1(v))r.indexOf(h)<0&&W3.call(v,h)&&(a[h]=v[h]);return a};var b=(v,r,a)=>_2(v,typeof r!="symbol"?r+"":r,a);var E=(v,r,a)=>new Promise((h,d)=>{var g=j=>{try{R(a.next(j));}catch($){d($);}},T=j=>{try{R(a.throw(j));}catch($){d($);}},R=j=>j.done?h(j.value):Promise.resolve(j.value).then(g,T);R((a=a.apply(v,r)).next());});var y2=class{requestAnimationFrame(r){return requestAnimationFrame(r)}cancelAnimationFrame(r){cancelAnimationFrame(r);}},g2=class{constructor(){b(this,"_

Este projeto visa criar uma aplicação Astro.build capaz de renderizar componentes de diferentes frameworks (React, Angular, Vue, Handlebars) e utilizar templates dinâmicos para gerar páginas estáticas. A estrutura é pensada para escalabilidade e futura integração com plataformas SaaS como Contentstack.

Tecnologias:

  • Astro.build: Framework para construir sites rápidos e focados em conteúdo.
  • TypeScript: Linguagem de programação para adicionar tipagem estática ao JavaScript.
  • Tailwind CSS: Framework CSS utilitário para estilização rápida e consistente.
  • React, Angular, Vue, Handlebars: Frameworks/bibliotecas de componentes.
  • Node.js v20: Ambiente de execução JavaScript.

É possível incorporar componentes React e Angular em um projeto Astro, embora com algumas considerações e configurações.

O Astro pode ser agnóstico em relação ao framework de UI, permitindo que você use o que melhor se adapta a cada parte do seu projeto.

Conceito Geral:

A Astro usa "Component Islands" para hidratar partes específicas da página com frameworks como React, Vue, Svelte, etc. Para Angular, a abordagem é um pouco diferente, pois não há um "Island" nativo para Angular. Precisamos usar um wrapper que permita renderizar o componente Angular dentro do Astro.

Configuração do Projeto Astro: