@gomerIT

Сервер NextJS + ExpressJS + Nodemon, nextJS компилирует проект каждый раз при изменений кода на сервере, как можно избежать?

Мой основной файл сервера nextJS выглядит так:
const express = require("express");
const next = require("next");
const port = parseInt(process.env.PORT, 10) || 3000;
const dev = process.env.NODE_ENV !== "production";

const app = next({ dev });
const handle = app.getRequestHandler();

app
  .prepare()
  .then(() => {
    const server = express();
    server.use(express.json());
    require("./routes/indexRouter")(server, app);
    server.all("*", (req, res) => {
      return handle(req, res);
    });

    server.listen(port, (err) => {
      if (err) throw err;
      console.log("> Ready on http://localhost:" + port);
    });
  })
  .catch((ex) => {
    console.error(ex.stack);
    process.exit(1);
  });

nodemon.json
{
  "verbose": true,
  "ignore": ["node_modules", ".next"],
  "watch": ["server/**/*", "app.js"],
  "ext": "js json"
}

TuDmX.png
Суть вопроса: Когда я пишу код на сервере, nodemon каждый раз перезапускает файл командой

node server/app.js
. С этим все хорошо, он справляется быстро, но вот вместе с этим происходит компиляция проекта nextJS, и этот процесс занимает довольно длительное время. Например при изменений роутинга мне нужно быстро проверить результат в браузере, и к сожалению приходится ждать пока next скомпилируется - это получается бессмысленная компиляция и трата времени. Я думал конечно о проксизаций отдельного проекта сервера, но у меня роутинг express связан с next. Вот пример из файле indexRoutes.js
module.exports = (app, nextApp) => {
  app.get('/page1', (req, res) => {
      if (...) {
          return nextApp.render(req, res, '/page1');
       }
          return nextApp.render(req, res, '/page2');
  });
};
  • Вопрос задан
  • 191 просмотр
Пригласить эксперта
Ответы на вопрос 1
@skuzmenkov1
Не используйте nodemon, а в ручную, когда вам надо, запускайте node server/app.js
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы