【问题标题】:Nodemon + Express 4.13.4Nodemon + Express 4.13.4
【发布时间】:2017-02-22 17:43:05
【问题描述】:

试图让 Nodemon 使用 Express 4 正确运行时,我正在失去理智;)我已经安装了 npm 并将我的 package.json 更改为

  "scripts": {
    "start": "nodemon ./bin/www"
  },

我使用...启动服务器

npm start

如果我随后对 routes.js 文件进行任何编辑,则不会进行任何更改。即使我刷新浏览器。运行 ps aux | grep节点我得到以下..

似乎 Nodemon 和节点服务器都在运行。有没有其他人看到这个并理解为什么?或者如何解决?

谢谢。

*UPDATE 这是我在服务器运行时的控制台输出。

【问题讨论】:

  • node /usr/local/bin/nodemon ./bin/www 是 nodemon 监视您的应用程序的更改。 node ./bin/www 进程是您的应用程序本身(将由 nodemon 分叉)。我不知道为什么更改文件不会导致 nodemon 重新启动应用程序。
  • 嗯好的。它似乎适用于玉文件。它仅适用于似乎不起作用的路由文件。谢谢@TomJardine-McNamara 我更新了我的服务器控制台的图像。不确定这是否有帮助....

标签: node.js nodemon


【解决方案1】:

Nodemon only watches the files in the current working directory(在您的情况下为 ./bin,因为您正在运行 ./bin/www)。您的应用程序文件不在该目录中,因此 nodemon 没有监视它们。

但是,您可以告诉 nodemon 改为监视一个或多个其他目录。在您的情况下,您只需要告诉它监视项目根目录,即nodemon ./bin/www --watch .

express 的视图引擎在每次请求时都会重新加载您的翡翠文件,这就是为什么您在没有您或 nodemon 重新启动应用程序的情况下看到它们所做的更改的原因。

我在你的 repo 上创建了一个 pull request,这使得 npm start 以这种方式使用 nodemon。

【讨论】:

  • 感谢@Tom Jardine-McNamara,它似乎仍然不起作用。我将我的应用程序推送到了 github。如果你有两秒钟的时间,你真的会帮助我;)github.com/barrylachapelle/temprepo
  • 今天我回家看看:)
  • 尽管快速浏览一下您的代码表明您没有app/ 文件夹。您可以告诉 nodemon 监视项目根目录 (nodemon -w . bin/www),或者将您的应用程序代码移动到 app 文件夹并使用 nodemon -w app bin/www(我通常这样做是因为我最终会得到多个文件夹,例如 lib、@987654333 @ 并将非应用文件(任何工具等)分开)
  • 谢谢!汤姆!非常感谢。
猜你喜欢
  • 2016-08-22
  • 2014-07-02
  • 2021-04-08
  • 2021-01-28
  • 2021-07-13
  • 2021-11-19
  • 2021-05-20
  • 2018-11-04
  • 1970-01-01
相关资源
最近更新 更多