知识点:
- 认识 nodemon
- 理解 nodemon 的作用
- 了解 nodemon 的适用场景
- 掌握 nodemon 命令最基本的使用
参考资料:
nodemon 是什么?
nodemon,全称是 node monitor 即:node 监视器。顾铭思议,nodemon 就是用来监听资源变化的,开发 express、koa 这样的应用程序的时候,一般都会用到这个库。
译:
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 可以大大提高开发效率和开发体验,同时 减少手动重启应用程序的麻烦。
- 开发阶段:在我们编写代码并保存时,Nodemon 会自动重启应用。这省去了每次更改代码后手动停止和重新启动应用程序的步骤,极大提高了开发效率。
- 实时编译和热重载:对于需要实时编译或支持热重载的项目(例如,使用了 Babel 或 TypeScript),Nodemon 可以帮助实现实时编译和热重载,让我们能够立即看到更改的效果。
- 开发具有文件上传或编辑功能的应用:如果我们的应用允许用户上传文件或编辑文件,那么可能希望在文件更改时自动重启应用,以保证用户始终可以获取到最新和最准确的文件状态。
- 开发 Node.js 微服务:在微服务架构中,服务之间可能会频繁地进行通信。使用 Nodemon 可以在每次服务更新时自动重启,确保所有服务都能及时更新。
总的来说,只要在使用 Node.js 进行开发,并希望在代码或文件更改时自动重启应用,那么 Nodemon 就是一个非常有用的工具。
安装 nodemon
局部安装:npm i nodemon
全局安装:npm i -g nodemon
记录一个问题:mac 使用 npm 进行全局安装,报错 - 没权限
sudo npm i -g nodemon
这个问题知道该如何解决就好了,之后每次安装,估计都会报错,说没有权限。此时记得在前边加上 sudo 就好。
体验 nodemon
通过以下步骤,体验一下 nodemon 库的作用:监视文件变化。
- 新建一个
1.js
文件,文件内容为:console.log('123')
- 打开终端,输入
npx nodemon 1.js
(如果是全局安装,可以直接输入nodemon 1.js
) - 输出结果:
123
- 修改
1.js
文件中的内容为:console.log('abc')
- 文件保存后,会自动运行修改后的
1.js
文件 - 输出结果:
abc
当我们执行完 nodemon 1.js
之后,相当于每次 1.js 中的内容发生变化,都会自动执行一遍 node 1.js