【问题标题】:How to set up nodemon in nextjs + express?如何在 nextjs + express 中设置 nodemon?
【发布时间】:2021-07-13 06:37:59
【问题描述】:

我的服务器主文件是这样的

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"
}

nodemon在文件更改时会快速重新加载app.js,但是nextJS编译需要很长时间,为此我必须等到所有内容都编译好后才能在浏览器中看到结果。 我想只使用服务器而不对 nextJS 项目进行无意识的重新编译

【问题讨论】:

  • nodemon 不会自动重新加载服务器,您是否编写了代码使其自动重新加载?你能告诉我重新加载代码吗
  • @edisonthk 我更新了我的主题

标签: express next.js nodemon


【解决方案1】:

Nodemon 需要知道何时重新加载。 在根目录下添加一个 nodemon 文件并将这段代码粘贴进去。

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

然后转到你的 package.json 文件并将 dev 脚本替换为 nodemon,如下所示。

"dev": "nodemon -w server/server.js server/server.js",

阅读此博客了解更多信息。 https://dev.to/whoisryosuke/nextjs-tip-hot-reloading-for-dynamic-servers-43ed

【讨论】:

    猜你喜欢
    • 2019-11-10
    • 2021-03-29
    • 2017-03-22
    • 2014-06-05
    • 2017-02-22
    • 2019-09-11
    • 2020-11-24
    • 1970-01-01
    • 2022-10-07
    相关资源
    最近更新 更多