nodemon的配置文件


本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/09/29/nodemon%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/

摘要

本文主要讲述了:

  1. 配置文件格式
  2. package.json
  3. 配置文件查询
  4. 层叠配置优先级
  5. 配置

正文

配置文件格式

JSON nodemon.json

示例:

learn_nodemon/nodemon.json

1
2
3
4
5
6
7
{
"ignore": [".git", "node_modules", ".gitignore"],
"env": {
"NODE_ENV": "development"
},
"ext": "js,json"
}

package.json

除此之外,配置还可以写在package.jsonnodemonConfig字段里。

package.json中存在nodemonConfig字段时,独立配置文件将被忽略。

示例:

learn_nodemon/package.json

1
2
3
4
5
6
7
8
9
{
"nodemonConfig": {
"ignore": [".git", "node_modules", ".gitignore"],
"env": {
"NODE_ENV": "development"
},
"ext": "js,json"
}
}

配置文件查询

默认情况下,nodemon 会在 CWD 下寻找配置文件。若 CWD 下不存在配置文件,则使用全局配置文件(~/nodemon.json)。

层叠配置优先级

若 CWD 和全局都存在配置文件,则 nodemon 会对多个配置文件进行层叠。

和被打开文件距离越短的配置文件的优先级越高,当多个配置文件冲突时,以优先级高的为准。

配置

exec

运行项

示例:运行 nodejs

nodemon.json

1
2
3
{
"exec": "node index.js"
}

运行:

1
2
3
#!/usr/bin/env bash

npx nodemon

相当于

1
2
3
#!/usr/bin/env bash

node index.js

示例:运行其他程序

nodemon.json

1
2
3
{
"exec": "echo 1"
}

运行:

1
2
3
#!/usr/bin/env bash

npx nodemon

相当于

1
2
3
#!/usr/bin/env bash

echo 1

如果不配置exec但以命令行参数的形式指定了 JavaScript 脚本,则nodemon会使用node执行指定脚本。

示例:

nodemon.json

1
{}

运行:

1
2
3
#!/usr/bin/env bash

npx nodemon index.js

相当于

1
2
3
#!/usr/bin/env bash

node index.js

如果不配置exec也没有以命令行参数的形式指定 JavaScript 脚本,则nodemon会使用node执行package.json中的main字段的脚本。

示例:

nodemon.json

1
{}

package.json

1
2
3
4
5
{
"name": "learn_nodemon",
"version": "1.0.0",
"main": "index.js"
}

运行:

1
2
3
#!/usr/bin/env bash

npx nodemon

相当于

1
2
3
#!/usr/bin/env bash

node index.js

watch

监听目录及文件

默认值:*.*

注意:目录默认包括子目录。即src相当于src/**/*


注:

  1. 若不设置watchext属性,则相当于监听所有目录下所有文件扩展名为jsmjsjson的文件
  2. 若设置了watchext属性,则相当于监听指定目录下所有指定文件扩展名的文件

示例:

  • 监听 CWD 下名为foo.js的文件
  • 监听src目录及其子目录下的所有文件

nodemon.json

1
2
3
{
"watch": ["foo.js", "src"]
}

ext

监听文件扩展名

默认值:js,mjs,json


注:

  1. 若不设置watchext属性,则相当于监听所有目录下所有文件扩展名为jsmjsjson的文件
  2. 若设置了watchext属性,则相当于监听指定目录下所有指定文件扩展名的文件

示例:监听所有目录下所有文件扩展名为 js 和 json 的文件

nodemon.json

1
2
3
{
"ext": "js, json"
}

ignore

忽略项(包括文件、目录或文件名通配符匹配)

注意:nodemon 隐式忽略.gitnode_modulesbower_components等目录,将ignore置空并不能取消忽略

示例:

  • 忽略dist目录下的所有文件
  • 忽略所有目录下所有名为foo.js的文件
  • 忽略src目录下的所有 JSON 文件

nodemon.json

1
2
3
{
"ignore": ["dist", "foo.js", "src/*.json"]
}

delay

重启延迟时间(毫秒)

使用 debounce 策略。

示例:

1
2
3
{
"delay": 2500
}

env

环境变量

示例:

1
2
3
4
5
{
"env": {
"NODE_ENV": "development"
}
}

参考资料

本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/09/29/nodemon%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/


本文对你有帮助?请支持我


支付宝
微信