Nodemon 是一个用于 Node.js 开发的工具,它的核心目的是监控文件变化并自动重启应用,从而极大提升开发效率。
使用目的
在 Node.js 开发过程中,每次修改代码后都需要手动停止并重新启动应用才能看到效果。Nodemon 解决了这个痛点,它通过监听项目目录中的文件(如 .js、.json、.mjs 等)变化,一旦检测到文件被保存,就会自动重启你的 Node.js 应用。这样开发者就可以专注于编写代码,而无需频繁地在终端中执行 node app.js。
主要优势:
- 提升开发效率:无需手动重启,保存即生效。
- 减少操作步骤 :告别重复的
Ctrl+C→node ...流程。 - 支持自定义配置:可指定监听的文件类型、忽略的目录、延迟重启时间等。
安装方法
Nodemon 可以通过 npm 或 yarn 全局安装,也可以作为项目的开发依赖安装。
全局安装(推荐,方便在任何项目中使用):
bash
npm install -g nodemon
或
bash
yarn global add nodemon
作为项目开发依赖安装:
bash
npm install --save-dev nodemon
或
bash
yarn add -D nodemon
安装完成后,可以通过 nodemon -v 检查版本,确认安装成功。
基本操作步骤
假设你有一个入口文件为 app.js 的 Node.js 应用。
-
启动应用
在项目根目录下,原本使用node app.js启动应用,现在只需将node替换为nodemon:bashnodemon app.js // 如果是安装到项目里面的执行 yarn nodemon app.js控制台会输出类似以下信息,表示 Nodemon 已启动并开始监听:
[nodemon] 3.1.9 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): *.* [nodemon] watching extensions: js,mjs,json [nodemon] starting `node app.js` Server is running on port 3000... -
修改并保存代码
现在,你可以随意编辑app.js或项目中的其他被监听的文件。保存文件后,观察终端,你会看到 Nodemon 自动检测到变化并重启应用:[nodemon] restarting due to changes... [nodemon] starting `node app.js` Server is running on port 3000...你的应用已经以最新的代码重新运行了。
-
手动重启
如果需要手动重启应用(例如环境变量变了但文件没改),在运行着 Nodemon 的终端里直接输入rs然后按回车即可。rs [nodemon] starting `node app.js` -
停止 Nodemon
在终端中按下Ctrl+C,即可停止 Nodemon 和你的应用。
常用配置与高级用法
Nodemon 的行为可以通过命令行参数或配置文件(nodemon.json)进行定制。
常用命令行参数:
--ext:指定监听的文件扩展名,例如nodemon --ext js,json app.js--ignore:忽略特定的文件或目录,例如nodemon --ignore logs/ app.js--delay:设置文件更改后重启的延迟时间(秒),例如nodemon --delay 2.5 app.js--exec:指定执行命令,例如用ts-node运行 TypeScript:nodemon --exec ts-node app.ts
使用配置文件 (nodemon.json):
在项目根目录创建nodemon.json文件,可以更清晰地管理配置。
json
{
"watch": ["src/", "config/"],
"ignore": ["src/**/*.spec.js", "node_modules/"],
"ext": "js,json,ts",
"exec": "node app.js",
"env": {
"NODE_ENV": "development"
}
}
创建配置文件后,只需运行 nodemon 即可。
在 package.json 中配置脚本
一种更常见的做法是在 package.json 的 scripts 字段中配置 Nodemon 启动命令。
json
{
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js"
}
}
这样,开发时只需运行 npm run dev 或 yarn dev 即可启动带热重载的开发服务器。
总结
Nodemon 是 Node.js 开发者必不可少的效率工具。它通过简单的 nodemon app.js 命令,将开发者从手动重启的繁琐操作中解放出来,实现了真正的"保存即预览"。结合配置文件或 npm scripts,可以轻松适配各种复杂的项目结构和工作流。