【问题标题】:nodemon recursive watch issue?nodemon递归监视问题?
【发布时间】:2017-07-08 03:59:21
【问题描述】:

我已经使用命令安装了 nodemon:

npm install nodemon -g

完成后,我将"start": "node ./bin/www" 更改为"start": "nodemon ./bin/www"

运行npm start时在控制台中输出:

[nodemon] 1.11.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `nodemon  ./bin/www ./bin/www`
[nodemon] 1.11.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `nodemon  ./bin/www ./bin/www ./bin/www`
[nodemon] 1.11.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `nodemon  ./bin/www ./bin/www ./bin/www ./bin/www`
and so on....

我哪里错了?请记住,这是我在 nodejs 上的第三天,所以请保持简单。

编辑

 "scripts": {
    "start": "nodemon app.js"
  },

“nodemon app.js”似乎可以工作,因为控制台没有显示任何错误,但是我无法运行该应用程序。但是,如果我将其改回node ./bin/www,它将起作用。

【问题讨论】:

    标签: node.js express nodemon


    【解决方案1】:

    您无需告诉nodemon 观看哪个文件夹。您只需要告诉它运行您的主应用程序,它就会自动监视所有嵌套的文件夹和文件。

    例如。 nodemon app.js(如果 app.js 是您的应用程序)

    还有。您可以选择在应用程序的主体中创建一个nodemon.json 文件来存放 nodemon 的配置信息。与您的问题无关。但是很高兴:)

    这是我的样子:

    {
      "ignore": ["data/*.json", "/node_modules/", "README.md"]
    }
    

    【讨论】:

    • 我把它改成了"start": "nodemon app.js",它似乎已经解决了递归问题,因为控制台现在说“干净退出 - 等待更改”,但我无法再连接“这个网站不能到达”
    • 编辑了我的问题
    • 您在哪个端口上运行您的应用程序?有没有可能你搞砸了你试图在哪个端口上查看应用程序?另外,您能否发布一张您的控制台的图片以及您在写作时所说的内容:npm start
    • 我在我的问题中添加了控制台。
    • 干净退出意味着您的应用程序正在运行后退出。您的代码中是否碰巧有process.exit(0)
    【解决方案2】:

    试试这个:

    npm i -D nodemon

    在 package.json 中添加:

    "scripts": {
        "start": "nodemon index.js",
      }
    

    这将执行位于应用节点根目录中的文件 index.js。 例如:

    应用程序/
    节点模块
    index.js

    再试一次:

    npm 开始

    【讨论】:

      【解决方案3】:

      尝试降低要求。 这对我有帮助。

      npm install nodemon@1.0.0 -g

      我在 nodemon >1.2.0 100% 的 docker image (node:alpine) 中重现了这个问题。而且 v1.1.0 和 v1.2.0 也有一些奇怪的问题。

      我只检查了次要版本(不检查补丁级别,例如 1.2.1、1.2.2 等)

      所以。 1.0.0 很旧,但运行良好。

      在我的主机 Mac 上,我全局安装了 nodemon@1.11.0。 有时我有这个问题,有时我没有。 这在某种程度上与 pwd 和 nodemon.json 文件有关。但我不确定。

      我找到了一个与此问题相关的bug report

      【讨论】:

        【解决方案4】:

        您正在观看一个不存在的文件,这将导致无限循环。

        在您的情况下,您正在运行 ./bin/www 并查看您的 IDE 屏幕截图,您有一个 ./bin/www.js

        这就是nodemon app.js 不会出错的原因。虽然我不能保证它会工作尝试nodemon ./bin/www.js

        那么,不看代码,我不知道为什么你不能那样连接你的应用程序。

        更多信息请查看@matt 答案和nodemon docs

        【讨论】:

          猜你喜欢
          • 2016-07-22
          • 2015-01-24
          • 2014-09-07
          • 2021-12-12
          • 2016-02-01
          • 2016-07-30
          • 2019-02-20
          • 2017-03-08
          相关资源
          最近更新 更多