Вот структура проекта:
У меня есть сайт, написанный на next.js. Для использования next-i18next и отправки электронной почты есть src / app / server / server.js.
const express = require("express");
const next = require("next");
const nextI18NextMiddleware = require("next-i18next/middleware");
var bodyParser = require("body-parser");
const nextI18next = require("../i18n");
const port = process.env.PORT || 3000;
const nextApp = next({ dev: process.env.NODE_ENV !== "production" });
const handle = nextApp.getRequestHandler();
nextApp.prepare().then(() => {
const server = express();
// parse application/json
server.use(bodyParser.json());
const sendMail = require("./sendMail");
server.use("/api/v1/communicate", sendMail);
server.use(nextI18NextMiddleware(nextI18next));
server.get("*", (req, res) => handle(req, res));
server.listen(port);
console.log(`> Ready on http://localhost:${port}`);
});
Чтобы разместить приложение на firebase, я использовал функции firebase в src / functions / index.js:
const functions = require("firebase-functions");
const next = require("next");
var dev = process.env.NODE_ENV !== "production";
var app = next({ dev, conf: { distDir: "next" } });
var handle = app.getRequestHandler();
exports.next = functions.https.onRequest((req, res) => {
console.log("File: " + req.originalUrl); // log the page.js file that is being requested
return app.prepare().then(() => handle(req, res));
});
В корне проекта у меня есть package.json:
{
"name": "src",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"scripts": {
"install": "yarn build-all",
"next": "yarn build-firebase && cd \"src/app\" && yarn && yarn dev",
"preserve": "yarn build-all",
"serve": "firebase serve",
"predeploy": "yarn build-all",
"deploy": "firebase deploy",
"build-all": "yarn build-next && yarn build-firebase",
"build-next": "cd \"src/app\" && yarn && yarn build",
"build-firebase": "cd \"src/functions\" && yarn"
},
"engines": {
"node": "10"
}
}
Когда я запускаю команду
yarn build-all
У меня есть такой вывод:
Когда я запускаю команду
firebase deploy --only functions:next
У меня есть такой вывод:
В настоящее время моя проблема в том, что я не знаю, как развернуть приложение на хостинге Firebase.
К сожалению, я не смог найти ничего, что поможет мне понять проблему. Я был бы очень рад услышать хотя бы некоторые предположения, которые могут помочь мне понять проблему.
Заранее спасибо!