NextJS с облачными функциями Firebase

Я хочу использовать NextJS с облачными функциями Firebase, и я создаю облачную функцию:

import * as functions from 'firebase-functions';
import cors from 'cors';
import express from 'express';
import next from 'next';

const nextApp = next({ dev: false });
const handle = nextApp.getRequestHandler();

nextApp
  .prepare()
  .then(() => {
    const server = express();
    server.use(cors({ origin: true }));

    server.get('/a', (req, res) => {
      return nextApp.render(req, res, '/b', req.query);
    });

    server.get('/b', (req, res) => {
      return nextApp.render(req, res, '/a', req.query);
    });

    server.get('*', (req, res) => {
      return handle(req, res);
    });
  })
  .catch(ex => {
    console.error(ex.stack);
    process.exit(1);
  });

export let app = functions.https.onRequest(nextApp);

NextJS создайте папку со сборкой моего приложения JS.

Проблема в том, что я не могу загрузить в облако папку сборки NextJS. Как я могу включить эту папку?

GitHub Issue => https://github.com/zeit/next.js/issues/2017

2 ответа

Я должен бежать firebase deploy в к functions каталог вместо root, Здесь мой репо => https://github.com/sarovin/next-firebase-functions

В настоящее время Firebase игнорирует загрузку скрытых файлов в облачные функции. PR был объединен, чтобы исправить это, но я считаю, что до сих пор не выпущен.

После этого вы обнаружите, что столкнулись с рядом других проблем с размещением Next.js в облачных функциях. Например, пакеты JS хранятся на /_next/ и недоступны, если вы не используете правильные правила перезаписи Firebase Hosting.

Я написал сообщение в блоге, охватывающее все проблемы и предостережения, которые я обнаружил, когда заставлял Next.js работать с облачными функциями.

Другие вопросы по тегам