知识点:

  • 认识 nodemon
  • 理解 nodemon 的作用
  • 了解 nodemon 的适用场景
  • 掌握 nodemon 命令最基本的使用

参考资料:

nodemon 是什么?

nodemon,全称是 node monitor 即:node 监视器。顾铭思议,nodemon 就是用来监听资源变化的,开发 express、koa 这样的应用程序的时候,一般都会用到这个库。

image.png

译:

nodemon 是一个工具,它可以帮助我们开发基于 Node.js 的应用,当检测到目录中的文件发生改变时,它会自动重新启动 node 应用程序。

nodemon 不需要对您的代码或开发方法进行任何额外的修改。nodemon 是 node 的替代包装器。要使用 nodemon,只需在执行脚本时在命令行上将 “node” 替换为 “nodemon” 即可。

Nodemon 是一个开发工具,用于开发基于 Node.js 的应用。它的核心功能是自动检测我们正在工作的目录中文件的变化,当文件被修改时,Nodemon 会自动重启我们的 Node.js 应用。这个功能在开发过程中非常有用,因为我们无需手动停止并重启应用来查看代码更改的效果。

Nodemon 并不需要我们对代码或开发流程做出任何改变,它可以直接替代 Node 命令。例如,如果我们通常使用 node app.js 来启动应用,那么在使用 nodemon 的情况下,只需要把 node 替换成 nodemon,也就是运行 nodemon app.js

换句话说,Nodemon 是一个 “封装器” 或 “包装器”,意味着它运行 Node.js 应用的方式和 Node 完全相同,只是在运行过程中加入了额外的文件监听和自动重启功能。

nodemon 的适用场景

nodemon 适用于所有 需要频繁修改和测试的 Node.js 应用程序场景。在这些场景中,使用 nodemon 可以大大提高开发效率和开发体验,同时 减少手动重启应用程序的麻烦

  1. 开发阶段:在我们编写代码并保存时,Nodemon 会自动重启应用。这省去了每次更改代码后手动停止和重新启动应用程序的步骤,极大提高了开发效率。
  2. 实时编译和热重载:对于需要实时编译或支持热重载的项目(例如,使用了 Babel 或 TypeScript),Nodemon 可以帮助实现实时编译和热重载,让我们能够立即看到更改的效果。
  3. 开发具有文件上传或编辑功能的应用:如果我们的应用允许用户上传文件或编辑文件,那么可能希望在文件更改时自动重启应用,以保证用户始终可以获取到最新和最准确的文件状态。
  4. 开发 Node.js 微服务:在微服务架构中,服务之间可能会频繁地进行通信。使用 Nodemon 可以在每次服务更新时自动重启,确保所有服务都能及时更新。

总的来说,只要在使用 Node.js 进行开发,并希望在代码或文件更改时自动重启应用,那么 Nodemon 就是一个非常有用的工具

安装 nodemon

局部安装:npm i nodemon

全局安装:npm i -g nodemon 记录一个问题:mac 使用 npm 进行全局安装,报错 - 没权限 image.png

sudo npm i -g nodemon

这个问题知道该如何解决就好了,之后每次安装,估计都会报错,说没有权限。此时记得在前边加上 sudo 就好。

体验 nodemon

通过以下步骤,体验一下 nodemon 库的作用:监视文件变化。

  1. 新建一个 1.js 文件,文件内容为:console.log('123')
  2. 打开终端,输入 npx nodemon 1.js(如果是全局安装,可以直接输入 nodemon 1.js
  3. 输出结果:123
  4. 修改 1.js 文件中的内容为:console.log('abc')
  5. 文件保存后,会自动运行修改后的 1.js 文件
  6. 输出结果:abc

当我们执行完 nodemon 1.js 之后,相当于每次 1.js 中的内容发生变化,都会自动执行一遍 node 1.js

image.png