Nodemon 简介、安装、使用和配置

一、nodemon官网

​https://nodemon.io/​

二、为什么要使用nodemon

  • 使用 node 启动一个服务,需要:
node server.js

修改了 server.js 文件,需要停止服务(ctrl + c),再次启动才会生效;
有了 nodemon,就不用频繁手动重启 server.js ,因为 nodemon 可以监视源码改动,并自动重启服务。这样我们只需要专注写代码逻辑,不需要过多关注服务。

三、安装

3.1. 全局安装

npm install -g nodemon

3.2. 开发环境安装

npm install nodemon --save-dev

3.3. 验证安装成功没有

nodemon -v

四、配置 nodemon

配置 nodemon 有三种配置方式:命令参数、package.json和nodemon.json

三种配置的优先级: nodemon.json > package.json > 命令参数;

4.1. 方式一:通过命令行参数配置 nodemon

  • --help,获取帮助;
nodemon --help

在这里插入图片描述

  • --config :设置指定的配置文件;
  • --ignore:设置无需监视的文件路径;
  • --exec :执行脚本
  • --watch : 设置要监视的文件和文件夹路径;
  • --ext : 设置监视文件的后缀扩展名;

默认情况下,​​nodemonwatching path(s): *.*​​所有项目文件,啥文件改动一下都要重启服务,其实没必要。

配置只监视 src 目录

nodemon --watch src server.js

配置监视文件的后缀扩展名

nodemon --ext js,json

上面使用的 --watch 参数,在这次--ext中并没有保存下来,监视的目录又变成默认的: *,所以说,命令配置临时用一下是可以的,常用的话,还是用配置文件香;

两个参数合并写法:

nodemon --watch src --ext js,json server.js

等价于配置文件:

{
    
    
  watch: ['src/'],
  ignore: [],
  script: 'server.js'
  options: {
    
    
    extensions: ['js', 'json'],
    exec: 'node'
  }
}

4.2. 方式二:package.json 配置

不想用命令行模式,可以在 package.json 中的 nodemonConfig 选项中配置

"nodemonConfig": {
    
    
  "watch":["src/"],
  "ext":"js json"
}

4.3. 方式三:nodemon.json 配置

单独配置 nodemon.json 文件,需要新建

{
    
    
    "watch": [
        "src/"
    ],
    "ext": "js json"
}

4.4. 完整的 nodemon.json 总结一下

{
    
    
  "restartable": "rs",
  "verbose": true,
  "watch": [
    "config/",
    "router/",
    "utils/",
    "views/",
    "app.ts",
    "index.ts"
  ],
  "ignore": [
    "test/*.spec.ts"
  ],
  "delay": "1000",
  "exec": "TS_NODE_PROJECT=tsconfig.server.json node --inspect -r ts-node/register ./app.ts",
  "ext": "ts ejs yml json"
}

nodemon.json 各项配置含义:

  • –restartable:设置重启命令,默认是 rs;
  • –verbose:是否输出重启的详细信息,布尔值,默认false;
  • –watch:监视文件或文件夹的路径,数组,每个参数都指某个路径;
  • –ignore:忽略监视的路径,默认忽略的是:.git,node_modules,bower–components,.sass-cache;
  • –delay:设置延迟时间;
  • –ext:指定默认文件扩展名,参数是字符串,空格分隔;
  • –script:指定监视的文件,一般指项目入口的 js 文件;
  • –exec:执行的命令;
  • –env :运行环境 development 是开发环境,production 是生产环境,pr–ot 是端口;