Nodemon 简介、安装、使用和配置
nodemon
先看下官网的简介:
Nodemon is a utility depended on about 3 million projects, that will monitor for any changes in your source and automatically restart your server. Perfect for development.Swap nodemon instead of node to run your code, and now your process will automatically restart when your code changes.
Nodemon 是一个大约300万个项目都依赖的工具,它可以监视源码中的任意改动并自动重启服务。非常适合开发使用。用 nodemon 代替 node 来运行代码,这样当代码发生改变时,进程会自动重启。
nodemon官网:https://nodemon.io/
github:https://github.com/remy/nodemon/
翻译人话
使用 node 启动一个服务,需要:
修改了 server.js 文件,需要停止服务(ctrl + c),再次启动才会生效;
有了 nodemon ,就不用频繁手动重启 server.js ,因为 nodemon 可以监视源码改动,并自动重启服务。这样我们只需要专注写代码逻辑,不需要过多关注服务。
特性(features)
Automatic restarting of application.
自动重启应用程序
Detects default file extension to monitor.
检测要监视的默认文件扩展名
Ignoring specific files or directories.
忽略特定的文件或目录
Watch specific directories.
监视特定目录
Open source and available on github.
开源,上github
安装nodemon
全局安装
开发环境安装
验证安装成功没有,程序员都是这么严谨 ^_^
有返回,说明成功了;
需要复习NPM同学:NPM 简介、安装、配置、常用方法
启动示例
先写一个服务, server.js ,使用 express 框架创建一个get路由。
创建服务:
启动服务:
使用 nodemon 启动服务。
服务已经启动;
注意启动后的4条提示信息:
提示1:当前版本 2.0.20;
提示2:可以使用 rs 来手动重启;
提示3:(watch)默认监视所有文件和目录;
提示4:(ext)默认监视扩展名 “js,mjs,json”;
疑问:既然监视了所有目录和文件,怎么监视扩展名?
回答:监视范围是,先监视所有目录,然后仅关注需要监视的文件类型,还要去掉不需要监视的文件。
预览Web:
访问: http://127.0.0.1:8000/server
改动代码:
仅是添加三个叹号!
nodemon 帮助我们重启了服务 server.js ,省事;
一般到这里就可以快快乐乐的敲代码了,很适合前端的同学使用;
求知欲未满足,那就再学点别的;
配置 nodemon
配置 nodemon 有三种配置方式:命令参数、package.json和nodemon.json;
三种配置的优先级: nodemon.json > package.json > 命令参数;
1)命令行参数形式(全局)
参数:--help,获取帮助;
语法:Usage: nodemon [options] [script.js] [args]
--config :设置指定的配置文件;
--ext : 设置监视文件的后缀扩展名;
--exec :执行脚本
--watch : 设置要监视的文件和文件夹路径;
--ignore :设置无需监视的文件路径;
参数:--watch,监控的文件或文件夹路径;
watch 可以监控多个目录,默认情况下,nodemon 会 watching path(s): *.*
所有项目文件,啥文件改动一下都要重启服务,其实没必要。
可以指定路径,使用 --watch ,如:只监视 src 目录;
参数:--ext ,设置监视文件的扩展名;
可以设置多个扩展名,如:监视 “.js 和 .json” ,不加点,逗号隔开;
上面使用的 --watch 参数,在这次 --ext 中并没有保存下来,监视的目录又变成默认的: "*.*
",所以说,命令配置临时用一下是可以的,常用的话,还是配置文件香;
两个参数合并写法:
等价于配置文件:
2)package.json 配置
不想用命令行模式,可以在 package.json 中的 nodemonConfig 选项中配置;
启动服务:
3)nodemon.json 配置
单独配置 nodemon.json 文件,需要新建;
启动服务:
拿个完整的 nodemon.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 是端口;
修改 nodemon 命令配置使用 --config 选项;
启动配置
在 package.json 中配置 scripts 对象的 start 属性来指定预定义命令;
这样启动服务时,只需输入命令:
也可启动 server 服务,这时 npm start
和 node server.js
效果一样;