Table des matières
Construire votre application Redwood
Structure du projet
Création de pages
Disposition
Langue de définition du schéma de la faune (SDL)
Redwoodjs SDL et services
Autorisation de la faune
Faunadb de semis
Cellules
Déploiement de Vercel
Maison interface Web tutoriel CSS Déploiement d'un site Jamstack sans serveur avec Redwoodjs, Faune et Vercel

Déploiement d'un site Jamstack sans serveur avec Redwoodjs, Faune et Vercel

Mar 31, 2025 am 09:33 AM

Déploiement d'un site Jamstack sans serveur avec Redwoodjs, Faune et Vercel

Ce tutoriel vous guide dans la création d'une application sans serveur Jamstack à l'aide de Redwoodjs, Faunadb et Vercel. Nous tirons parti de l'API GraphQL de Fauna en tant que backend pour un frontend RedwoodJS, en déploiement sans effort avec le déploiement en un clic de Vercel.

Attendez-vous à une plongée profonde dans les concepts JamStack et sans serveur, ainsi qu'une expérience pratique en utilisant cette puissante pile technologique.

Construire votre application Redwood

RedwoodJS est un cadre pour les applications sans serveur, combinant React (frontend), GraphQL (données) et prisma (requêtes de base de données). Alors que d'autres cadres frontaux existent (comme le bison), RedwoodJS propose un écosystème mature et bien établi.

Nous contournerons les modèles de démarrage et nous construisons à partir d'un projet de séquoia de base, examinant chaque composant. Tout d'abord, installez le fil et exécutez ces commandes:

 fil Créer un Redwood-App ./CSStricks
CD CSStricks
fil rw dev
Copier après la connexion

Votre frontend fonctionne sur localhost:8910 et le backend sur localhost:8911 (avec un terrain de jeu Graphiql). La page d'atterrissage du séquoia devrait apparaître à localhost:8910 . (Remarque: Redwoodjs La version 0.21.0 est utilisée dans cet exemple; consultez la documentation pour la dernière version et la préparation de la production.)

Structure du projet

RedwoodJS hiérarchise la convention sur la configuration, fournissant une disposition de projet structurée:

 <code>├── api │ ├── prisma │ │ ├── schema.prisma │ │ └── seeds.js │ └── src │ ├── functions │ │ └── graphql.js │ ├── graphql │ ├── lib │ │ └── db.js │ └── services └── web ├── public │ ├── favicon.png │ ├── README.md │ └── robots.txt └── src ├── components ├── layouts ├── pages │ ├── FatalErrorPage │ │ └── FatalErrorPage.js │ └── NotFoundPage │ └── NotFoundPage.js ├── index.css ├── index.html ├── index.js └── Routes.js</code>
Copier après la connexion

Le projet est divisé en répertoires web (frontend) et api (backend), géré par les espaces de travail YARN. Nous remplacerons Prisma par Faunadb, en supprimant le répertoire prisma et le contenu de db.js (mais en gardant le fichier db.js ).

index.html

Le fichier index.html contient le nœud Root Dom (<div id="redwood-app"></div> ) où l'application React est rendue. Redwoodjs, bien que orienté Jamstack, ne pratiquait actuellement pas de pré-rendu comme Next.js ou Gatsby.

index.js

index.js rend le composant d'application principal dans l'élément DOM redwood-app à l'aide de ReactDOM.render() . Il utilise RedwoodProvider pour la gestion du contexte et FatalErrorBoundary pour la gestion des erreurs.

Routes.js

Routes.js définit le routage de l'application à l'aide du routeur de Redwood.

Création de pages

Créons des pages à l'aide de la CLI de séquoia:

 yarn rw g page home /
Page de fil RW G sur
Copier après la connexion

Cela génère les fichiers nécessaires pour HomePage et AboutPage . Simplifiez ces pages en supprimant les liens de navigation inutiles.

Disposition

Créez une disposition réutilisable pour la navigation:

 Blog de mise en page RW G YARN
Copier après la connexion

Modifier BlogLayout.js pour inclure des liens de navigation vers HomePage et AboutPage en utilisant<link> composants. Importez BlogLayout dans HomePage et AboutPage pour intégrer la navigation.

Langue de définition du schéma de la faune (SDL)

Créez sdl.gql avec le schéma suivant:

 Type Post {
  Titre: String!
  Corps: String!
}

Type Query {
  Posts: [Post]
}
Copier après la connexion

Téléchargez ce schéma sur votre instance faunadb. Notez que FaunAdB crée des types intermédiaires; Nous expliquerons cela dans notre schéma RedwoodJS.

Redwoodjs SDL et services

Créez api/src/graphql/posts.sdl.js reflétant le schéma de la faune, y compris le type PostPage intermédiaire. Créez api/src/services/posts/posts.js pour interroger l'API Fauna GraphQL à l'aide de graphql-request . N'oubliez pas d'installer graphql-request et graphql dans le répertoire api .

Autorisation de la faune

Configurez api/src/lib/db.js pour inclure votre secret de Faunadb dans l'en-tête d'autorisation à l'aide de variables d'environnement.

Faunadb de semis

Utilisez le shell Fauna pour ajouter quelques exemples de messages à votre base de données.

Cellules

Générez un BlogPostsCell ​​pour récupérer et afficher les publications:

 YARN RW Générez des objets de blogs cellulaires
Copier après la connexion

Modifiez BlogPostsCell.js pour interroger les posts et rendre le titre et le corps de chaque publication. Importez BlogPostsCell ​​dans HomePage .

Déploiement de Vercel

Connectez votre projet à Vercel. Modifiez netlify.toml (s'il existe) pour définir apiProxyPath sur "/ api". Ajoutez votre secret de faunadb aux variables environnementales de Vercel. La commande de construction de Vercel fonctionne de manière transparente avec Redwoodjs.

Votre application est maintenant terminée! Une démo en direct et un référentiel GitHub sont disponibles (les liens seraient insérés ici).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1667
14
Tutoriel PHP
1273
29
Tutoriel C#
1255
24
Une comparaison des fournisseurs de formulaires statiques Une comparaison des fournisseurs de formulaires statiques Apr 16, 2025 am 11:20 AM

Essayons de savoir un terme ici: "fournisseur de formulaire statique". Vous apportez votre HTML

Une preuve de concept pour rendre Sass plus rapidement Une preuve de concept pour rendre Sass plus rapidement Apr 16, 2025 am 10:38 AM

Au début d'un nouveau projet, la compilation SASS se produit en un clin d'œil. Cela se sent bien, surtout quand il est associé à BrowSersync, qui recharge

Actualités hebdomadaires de la plate-forme: attribut HTML Loading, les principales spécifications Aria et le passage de iframe à Shadow Dom Actualités hebdomadaires de la plate-forme: attribut HTML Loading, les principales spécifications Aria et le passage de iframe à Shadow Dom Apr 17, 2025 am 10:55 AM

Dans cette semaine, le Roundup des nouvelles de la plate-forme, Chrome présente un nouvel attribut pour le chargement, les spécifications d'accessibilité pour les développeurs Web et la BBC Moves

Certains pratiques avec l'élément de dialogue HTML Certains pratiques avec l'élément de dialogue HTML Apr 16, 2025 am 11:33 AM

C'est moi qui regarde l'élément HTML pour la première fois. J'en ai été conscient depuis un certain temps, mais il ne l'a pas encore pris pour un tour. Il a un peu cool et

Forme de papier Forme de papier Apr 16, 2025 am 11:24 AM

L'achat ou la construction est un débat classique de la technologie. Construire des choses vous-même peut être moins cher car il n'y a pas d'article de ligne sur votre facture de carte de crédit, mais

Où devrait «abonner au podcast» vers le lien? Où devrait «abonner au podcast» vers le lien? Apr 16, 2025 pm 12:04 PM

Pendant un certain temps, iTunes était le grand chien du podcasting, donc si vous avez lié "Abonnez-vous au podcast" pour aimer:

C'est tout dans la tête: gérer la tête de document d'un site alimenté par réact avec un casque React C'est tout dans la tête: gérer la tête de document d'un site alimenté par réact avec un casque React Apr 15, 2025 am 11:01 AM

Le chef de document n'est peut-être pas la partie la plus glamour d'un site Web, mais ce qui y va est sans doute tout aussi important pour le succès de votre site Web que son

Options pour héberger vos propres analyses non-javascript Options pour héberger vos propres analyses non-javascript Apr 15, 2025 am 11:09 AM

Il existe de nombreuses plates-formes d'analyse pour vous aider à suivre les données des visiteurs et d'utilisation sur vos sites. Peut-être plus particulièrement Google Analytics, qui est largement utilisé

See all articles