страница загружается очень медленно при развертывании в облачной функции firebase - PullRequest
0 голосов
/ 27 мая 2020

Раньше я развертывал свой проект на вычислительном движке, где не возникало проблем с загрузкой страницы. Страница загружалась очень быстро. Однако, когда я перехожу на бессерверный режим, страница загружается очень-очень медленно, а иногда я получаю 'Error: could not handle the request'. Я недостаточно уверен в бессерверном развертывании.

Вот как я развертываю

структуру

.firebase
.next
public
src
  components
  pages
  utils
next.config.js
server.js
.firebaserc
firebase.json
package.json

часть конфигурации

.firebaser c

{
  "projects": {
    "default": "project-test"
  }
}

firebase. json

{
  "hosting": {
    "public": "public",
    "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
    "rewrites": [
      {
        "source": "**",
        "function": "next"
      }
    ]
  },
  "functions": {
    "source": ".",
    "ignore": [
      ".firebase/**",
      ".firebaserc",
      "firebase.json",
      "**/node_modules/**",
      "**/.vscode/**",
      "**/.hooks/**",
      "**/public/**"
    ]
  }
}

next.config. js

const withPlugins = require("next-compose-plugins");
const optimizedImages = require("next-optimized-images");
const withPWA = require("next-pwa");

module.exports = withPlugins(
    [optimizedImages],
    [
      withPWA({
        pwa: {
          dest: "public",
        },
      }),
    ]
);

server. js (я не знаю, где это используется)

const functions = require('firebase-functions');
const next = require('next');

var dev = false;
console.log('dev', process.env.NODE_ENV);
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));
});

скрипты

"scripts": {
    "dev:client": "next",
    "local": "dotenv -e .env.local next",
    "dev:server": "node src/server --source-maps --watch",
    "dev": "dotenv -e .env.development yarn dev:client & yarn dev:server",
    "build": "dotenv -e .env.production next build",
    "build:dev": "dotenv -e .env.development next build",
    "build:staging": "dotenv -e .env.staging next build",
    "build:production": "NODE_ENV=production dotenv -e .env.production next build",
    "deploy:dev": "dotenv -e .env.development firebase deploy --only functions,hosting",
    "deploy:staging": "dotenv -e .env.staging firebase deploy -P staging --only functions,hosting",
    "start": "next start",
  },

способ развертывания:

сначала я создаю проект, используя следующую команду

yarn build:dev

затем развернуть с помощью yarn deploy:dev

вот файл сборки

enter image description here

Я пропустил что-то важное при развертывании?

Примечание: я использую следующий js 9,4

...