2017-07-19 4 views
0

Ich möchte NextJS mit Feuerbasis Cloud-Funktionen verwenden, und ich bin die Schaffung einer Cloud-Funktion:NextJS mit Firebase Cloud-Funktionen

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 erstellen Sie einen Ordner mit dem Aufbau meiner JS App.

Das Problem ist, dass ich nicht in der Cloud den NextJS Build-Ordner hochladen kann. Wie kann ich diesen Ordner hinzufügen?

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

Antwort

0

Firebase ignoriert derzeit das Hochladen versteckter Dateien in Cloud-Funktionen. A PR wurde zusammengeführt, um dies zu beheben, aber ich glaube, dass zu dieser Zeit noch unveröffentlicht ist.

Sobald Sie dies sortiert haben, werden Sie feststellen, dass Sie eine Reihe anderer Probleme mit dem Hosting von Next.js on Cloud Functions haben. Beispielsweise werden JS-Bundles auf der Route /_next/ gespeichert und sind nur verfügbar, wenn Sie die richtigen Firebase-Hosting-Umschreibungsregeln verwenden.

Ich habe geschrieben a blog post für alle Probleme und Einschränkungen, die ich entdeckt habe, wenn Next.js auf Cloud-Funktionen arbeiten.