由于 Next.js 的更改,Nodemon 卡在重启状态

Nodemon stuck at restarting due to changes for Next.js

由于更改,我的 nodemon 一直卡在重新启动时。我目前正在使用 Next.js 框架。我已经尝试安装和卸载 nodemon 但它不起作用。

以下是我的package.json

{
  "name": "next_js_proj",
  "version": "0.1.0",
  "private": false,
  "scripts": {
    "dev": "nodemon server.js",
    "build": "next build",
    "start": "NODE_ENV=production node server.js"
  },
  "dependencies": {
    "@artsy/fresnel": "^1.2.2",
    "axios": "^0.21.0",
    "bcryptjs": "^2.4.3",
    "cors": "^2.8.5",
    "crypto": "^1.0.1",
    "dotenv": "^8.2.0",
    "express": "^4.17.1",
    "js-cookie": "^2.2.1",
    "jsonwebtoken": "^8.5.1",
    "lodash": "^4.17.15",
    "moment": "^2.24.0",
    "mongoose": "^5.9.14",
    "morgan": "^1.10.0",
    "next": "^10.0.3",
    "nodemailer": "^6.4.8",
    "nodemon": "^2.0.7",
    "nodemailer-sendgrid-transport": "^0.2.0",
    "nookies": "^2.3.0",
    "nprogress": "^0.2.0",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-infinite-scroll-component": "6.0.0",
    "react-moment": "^0.9.7",
    "react-toastify": "^6.0.5",
    "semantic-ui-css": "^2.4.1",
    "semantic-ui-react": "^2.0.0",
    "socket.io": "^2.3.0",
    "socket.io-client": "^2.3.0",
    "uuid": "^8.2.0",
    "validator": "^13.0.0"
  }
}

Server.js

const express = require("express");
const app = express();
const server = require("http").Server(app);
const next = require("next");
const dev = process.env.NODE_ENV !== "production";
const nextApp = next({ dev });
const handle = nextApp.getRequestHandler();
require("dotenv").config({ path: "./config.env" });
const connectDb = require("./utilsServer/connectDb");
connectDb();
app.use(express.json());
const PORT = process.env.PORT || 3000;

nextApp.prepare().then(() => {
    app.use("/api/signup", require("./api/signup"));
    app.use("/api/auth", require("./api/auth"));
    app.all("*", (req, res) => handle(req, res));

    server.listen(PORT, err => {
        if (err) throw err;
        console.log(`Hello, Express server running on ${PORT}`);
    });
});

最初当我启动服务器时,它工作

我做了后续修改后,还是不行

请指教,万分感谢

这就是我在下一个 js 中解决这个 nodemon 问题的方法。

一个。我在 2.0.7 的开发依赖中下载了 nodemon。似乎较新的版本在我的本地引起了问题。

b。更新 package.json

中的脚本
  "scripts": {
    "dev": "nodemon server.js",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  }

c。在根目录

中创建nodemon.json
{
    "verbose": true,
    "ignore": [
        "node_modules",
        ".next"
    ],
    "watch": [
        "server/**/*",
        "server.js",
        "api/",
        "validators/",
        "models/"
    ],
    "ext": "js json"
}

Nodemon 当前正在监视 server.js , api 文件夹中的文件等。如果您希望 nodemon 监视任何其他文件夹,只需将其添加到 watch 数组中即可。所以如果你想让 nodemon 监视目录调用 foo 中的文件,只需将它 nodemon.js 更新为以下内容

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

d. 运行 npm dev,它应该可以工作。