nodemon 是一款非常实用的开发工具,用来监控 Node.js 源代码的任何变化和自动重启服务器。
安装
npm install -g nodemon
这样 nodemon 就会安装在全局环境
也可以下载 nodemon 作为开发环境依赖
npm install nodemon -D
使用
启动应用
nodemon [your node app]
例如程序的入口文件是 server.js
那么就是
nodemon server.js
使用帮助
nodemon -h
或者
nodemon --help
指定主机、端口
如果应用程序接收主机和端口作为参数,也可以这样来启动:
nodemon ./server.js localhost 8080
省略脚本文件
如果程序中有 package.json
,可以省略后面的脚本文件,nodemon
会读取 package.json
中的 main
属性,作为启动的脚本文件。
nodemon 也会查找 package.json
中的 scripts.start
属性(在 nodemon 1.1.x
版本中)
nodemon 还有很好用的配置文件,有兴趣的可以去它的 github 仓库学习。
nodemon 配置文件
根据项目的实际需求,nodemon 提供了一个可供配置的文件,在项目根目录下创建 nodemon.json
文件,以下是一些常见的配置项,根据需求进行配置:
{
"restartable":"rs",//重启的命令,默认是 rs
"ignore":[""],//忽略的文件后缀名或者文件夹,文件路径的书写用相对于 nodemon.json 所在位置的相对路径
"verbose": true, //表示输出详细启动与重启信息
"execMap":{
"":"node",
"test": "gulp test"
},
"events":{
"start":"gulp", //子进程(即监控的应用)启动
"crash":"", //子进程崩溃,不会触发 exit
"exit":"", //子进程完全退出,不是非正常的崩溃
"restart":"gulp", //子进程重启
},
"ext": "js json",//监控指定后缀名的文件,用空格间隔。默认监控的后缀文件:.js, .coffee, .litcoffee, .json。但是对于没有文件后缀的文件,比如 www 文件,我暂时找不到怎么用 nodemon 去监控,就算在 watch 中包含了,nodemon 也会忽略掉
"watch":[
"./src/**"
],
"env":{
"NODE_ENV":"env", // env: 是开发环境; 运行环境 development; production 是生产环境
"PORT":"3000"
},
"legacy-watch":false, // nodemon 使用 Chokidar 作为底层监控系统,但是如果监控失效,或者提示没有需要监控的文件时,就需要使用轮询模式(polling mode),即设置 legacy-watch 为 true,也可以在命令行中指定
}