nodemon入门介绍

以前,我们开发一个node后端服务时,每次更改文件,均需重启一下,服务才能生效。这使我们的开发效率降低了很多。nodemon的出现,可以随时监听文件的变更,自动重启服务,我们开发时只需关注代码即可,不再需要手动重启服务。

nodemon是remy从2010年开始启动的一个项目,截止到2019/10/11日,其star数19.1k,contributors 99个,且一直处于维护状态。remy本人是github上非常活跃的人。废话不再多说,我们开始吧~~

nodemon之前,我们在node上运行一个index.js文件

复制代码
index.js

console.log('xiaokeqi')

运行它,须通过命令:

复制代码
node index.js

我们若在index.js文件中再新增一行

复制代码
index.js

console.log('xiaokeqi')
console.log('xiaoqi')

我们则需要再次手动运行

复制代码
node index.js

而出现nodemon后,我们只需运行

复制代码
nodemon ./index.js

即可。其会找到当前路径下的index.js,并watch其变更,自动重启服务。我们只需要安心写代码逻辑就好,再也不需要关注服务了!

安装

全局安装

复制代码
npm install -g nodemon

开发环境安装

复制代码
npm install --save-dev nodemon

使用

可以通过配置命令行使用,也可通过配置nodemon.json文件来使用。

其中命令行

复制代码
nodemon --watch src/ -e js,coffee app.js

等价于配置文件

复制代码
{
  watch: ['src/'],
  ignore: [],
  script: 'app.js'
  options: {
    extensions: ['js', 'coffee'],
    exec: 'node'
  }
}

命令行

复制代码
nodemon

等价于配置文件

复制代码
{
  watch: [], // meaning all subdirectories
  ignore: [],
  script: 'index.js',
  options: {
    extensions: ['js'],
    exec: 'node'
  }
}

其option 转化逻辑为

读命令行参数--->若无,查找本地local配置文件-->若无,查找全局配置文件->若无,尝试package.json中的main和start-->查找index.js

因此 配置启动文件,可加快启动速度,避免深度查找

接下来,我们一一看下其配置选项,如下图所示

  • --config 可设置指定配置文件
  • --ext 设置监听文件的后缀扩展名,如想要监听ts文件的变更,需设置-e ts
  • --exec 执行脚本
  • --watch 设置要监听的文件路径
  • --ignore 设置无需监听的文件路径

不想在项目中单独维护nodemon.json配置文件,可在package.json中设置

package.json设置方法如下

复制代码
{
  "name": "nodemon",
  "homepage": "http://nodemon.io",
  "...": "... other standard package.json values",
  "nodemonConfig": {
    "ignore": ["test/*", "docs/*"],
    "delay": "2500"
  }
}

需要注意的是,不能再通过--config 设置文件,且本地不能再保存nodemon.json文件,否则package.json中的配置将被忽略

nodemon可以作为一个模块module和子进程child process来使用

具体使用方法,可参见官网doc

nodemon/doc/requireable.md at master · remy/nodemon · GitHub

https://github.com/remy/nodemon

相关推荐
zttbee4 小时前
echarts图表tooltip色块失效
前端·javascript·echarts
H.莓飛4 小时前
【数据结构】排序_OJ题(一):计数、桶与排序后的处理
java·开发语言·数据结构
wangchunyu1145 小时前
JAVA AQS与Lock实现原理(含CAS)
java·开发语言·word
虚无境6 小时前
如何用AI帮我写出实用的插件
前端·javascript·ai编程
爱喝水的鱼丶6 小时前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
小灰灰搞电子6 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
外收内放6 小时前
面向对象高级(实战案例)
开发语言·python·学习
zimoyin7 小时前
在 C# 里嵌入 JavaScript:用 Jint 做可热更新的自动化脚本(从入门到踩坑)
javascript·c#·自动化
fanruitian7 小时前
python else用法
开发语言·python
FRing038 小时前
JavaScript入门到精通二十六(变量提升、函数剩余参数、展开运算符、ES6箭头函数)
开发语言·前端·javascript·es6·箭头函数