如何使用 Nodemon 监控符号链接模块?
Posted
技术标签:
【中文标题】如何使用 Nodemon 监控符号链接模块?【英文标题】:How do I monitor symlinked modules with Nodemon? 【发布时间】:2015-07-13 20:02:45 【问题描述】:我正在 Node.js 中开发一个模块,我已经将它 npm 链接到另一个项目的 node_modules 文件夹中。我想在我的模块中的文件更改时重新启动这个其他项目服务器。 Nodemon 默认忽略 node_modules,但我认为我可以使用 nodemon --watch node_modules/my_module 覆盖它——但无法让它工作。如果我暂时从 Nodemons lib/config/defaults.js 中删除 node_modules 它可以工作,这可能证实问题与覆盖默认行为有关。
【问题讨论】:
我自己也遇到了。我曾想过使用 forever.js,但看起来该库实际上并不支持将日志输出发送到标准输出(我认为这是一个破坏者)。 ...aaa 我找到了解决方案。我想我之前应该尝试过。 【参考方案1】:使用 nodemon
1.2.1,我可以执行以下操作以使手表与 npm 链接一起工作:
$ nodemon --watch . --watch $(realpath node_modules/my_module)
基本上...您必须监视您所在的目录(您的项目目录),然后指定对符号链接本身的监视。 nodemon
默认忽略 node_modules
,因此明确指定手表可以解决此问题。如果这对您不起作用,您可以尝试更新您的 nodemon
版本。
【讨论】:
这似乎不再起作用,请参阅this issue; @Tamlyn Hey - 如果存在,请随时编辑我的答案以包含新修复。如果这是一个好的答案,我可以制作这个社区 wiki 并保持开放以供编辑。 在我运行brew install coreutils
(macOS) 之后,这对我有用。否则找不到realpath
命令。最好单独运行realpath node_modules/my_module
以确保它返回有意义的内容,然后才调用nodemon ...
。
使用这个解决方案,我创建了一个小型包装器,它将自动监视所有链接的模块。只需npm install -g linkemon
,然后只需使用linkemon
命令代替nodemon
。以上是关于如何使用 Nodemon 监控符号链接模块?的主要内容,如果未能解决你的问题,请参考以下文章