nodemon 忽略目录

Posted

技术标签:

【中文标题】nodemon 忽略目录【英文标题】:nodemon ignore directory 【发布时间】:2017-06-14 06:19:06 【问题描述】:

在通用 javascript 应用程序中,我希望 nodemon 忽略客户端目录更改。

我尝试了以下方法:

"devStart": "nodemon server/server.js --ignore 'client/*' --exec babel-node",
"devStart": "nodemon server/server.js --ignore 'client/' --exec babel-node",
"devStart": "nodemon server/server.js --ignore client/ --exec babel-node",
"devStart": "nodemon --ignore 'client/*' server/server.js --exec babel-node",
"devStart": "nodemon --ignore 'client/' server/server.js --exec babel-node",
"devStart": "nodemon --ignore client/ server/server.js --exec babel-node",

这些都不起作用。

文件结构:

+-server
+-client
+-package.json <------- where nodemon script is

但是这不起作用。很确定这是一个模式问题。

有什么想法吗?

【问题讨论】:

我建议将您的 nodemon 配置存储在 nodemon.json 文件中。会让它更干净。 @Aᴍɪʀ 感谢您的提示。对实际问题的任何提示? 很确定它只是通往客户端的路径 - 应该是 ./client/*client/* 你可以尝试不使用' 标记并使用. 代替..'./client/*' 并且不使用* @Aᴍɪʀ 编辑的package.json 实际上与serverclient 在同一目录中 【参考方案1】:

您需要将.. 替换为.,或者直接引用client/,还需要去掉星号:

"devStart": "nodemon --ignore ./client/ --exec babel-node src/server.js"

或者

"devStart": "nodemon --ignore client/ --exec babel-node src/server.js"

根据 nodemon 文档,这是如何通过命令行忽略目录:

nodemon --ignore lib/ --ignore tests/

还要注意nodemon只会重启node进程,如果你改变npm脚本你需要杀死进程并重新运行npm run devStart

【讨论】:

已编辑我的package.json 实际上与clientsrc 位于同一目录中 已更新答案以删除星号 - nodemon 文档说要遵循此模式:nodemon --ignore lib/ --ignore tests/ 好的,知道了。我期待服务器重新加载实际上重新加载 devStart 脚本。结果我不得不终止进程并再次运行npm run devStart。如果您可以更新您的答案以反映这一点,我会接受它。 @hackerrdave 我不得不删除client/周围的引号 删除引号对我有用:nodemon --ignore client src/server.js【参考方案2】:

如果您很可能在配置文件中使用nodemon,您可以为这些文件创建一个单独的配置条目以被忽略。奖励,一个看起来更干净的nodemon 调用,尤其是当要忽略的文件变大时。

例如,这个package.json 指示nodemon 忽略目录test


  "scripts": 
    "test": "jest",
    "start": "nodemon server.js"
  ,
  "nodemonConfig": 
      "ignore": ["test/*"]
  

找到nodemon配置文件设置here的完整说明。

与其他答案一样,请务必重新启动nodemon 以使配置更改生效。

【讨论】:

【参考方案3】:

在您的项目根目录中创建nodemon.json,如下所示:


  "ignore": ["db.json"]

这是在 Andrew Philips 回答中看到的使用 package.json 的替代方法

见docs

【讨论】:

【参考方案4】:

您也可以使用类似的方法仅在特定文件夹中运行 nodemon。这样您就不必添加多个--ignore 参数。


  "scripts": 
    "devStart": "cd ./server/ && nodemon ./server.js"
  

【讨论】:

【参考方案5】:

大家都知道,我使用这种模式来排除目录:

node_modules/**

但这导致使用了很多观察者:我的一个项目有近 500000 现在我使用

node_modules/

仅使用 134 个观察者。

始终监控您的工作

【讨论】:

以上是关于nodemon 忽略目录的主要内容,如果未能解决你的问题,请参考以下文章

Nodemon 监视所有项目目录

如何使用 Nodemon 监控符号链接模块?

nodemon 在 C 盘而不是项目目录中寻找文件。

nodemon的使用

nodemon和pm2快速部署服务

使用nodemon提高nodejs调试效率