web-dev-qa-db-fra.com

Comment utiliser l'optimisation automatique de site statique Next.js et toujours exporter pour Netlify?

J'ai travaillé sur la mise en œuvre de certaines des mises à jour de Next 9. . Je suis passé de getInitialProps à getServerSideProps et j'ai remarqué que mes exportPathMap étaient mécontents du fait que ces pages devenaient dynamiques. Tout fonctionne bien en cours d'exécution next, mais quand je vais exécuter next build && next export, Je rencontre quelques problèmes.

Dans la documentation pour exportation HTML statique il indique If your pages don't have getInitialProps you may not need next export at all; next build is already enough thanks to Automatic Static Optimization. Je peux faire en sorte que cela fonctionne avec mes nouveaux appels getServerSideProps lorsque j'exécute next build && next start. Quelles étapes dois-je suivre pour que cela fonctionne également avec next export afin que je puisse déployer via Netlify. Voici un exemple de l'erreur que j'obtiens lorsque j'essaye d'exécuter next export

Error occurred prerendering page "/videos/[videos_title]". Read more: https://err.sh/next.js/prerender-error:
Error: Error for page /videos/[videos_title]: pages with `getServerSideProps` can not be exported. See more info here: https://err.sh/next.js/gssp-export
4
camiblanch

Les applications créées avec SSR ne peuvent pas être déployées dans Netlify ou tout autre site d'hébergement statique (sauf Vercel, qui prend en charge le déploiement de NextJS SSR)

Lorsque vous optez pour SSR (en utilisant getServerSideProps), il est inutile d'utiliser la commande next export car il essaiera de créer un contenu statique qui est totalement opposé au SSR.

  • Un moyen de déploiement consiste à l'exécuter dans le serveur virtuel (comme EC2) en créant un fichier server.js personnalisé avec une configuration de routage appropriée.
  • Une autre méthode simple et rapide consiste à utiliser Vercel (Zeit anciennement) pour le déploiement de SSR implémenté Applications où ils le gèrent avec sagesse

Vercel a une documentation médiocre pour le déploiement des applications SSR. Heureusement, j'ai obtenu les informations ci-dessous de l'équipe de support et je leur ai demandé de mettre à jour la documentation pour en savoir plus sur le déploiement SSR dans Vercel.

Lors du déploiement dans Vercel,

  • Donnez la commande de construction comme next build ou npm run build
  • Laissez le répertoire de sortie comme vide

REMARQUE: l'application avec server.js personnalisé ne fonctionnera pas correctement dans Vercel, dans ce cas, optez pour Virtual Server (comme EC2)

1
Ganesh