Node: Nodemon服务重启工具的详细使用
Posted xyq-208910
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node: Nodemon服务重启工具的详细使用相关的知识,希望对你有一定的参考价值。
一、简介
Nodemon是一个非常好用的工具,它可以帮助开发者实现服务的自动重启。在服务端开发中,开发者经常会去修改文件然后进行调试,每次修改完如果需要人为去重新启动服务的话,非常浪费精力和时间。Nodemon这个工具正好提供了重启服务的功能,非常方便。
二、项目
还是采用上篇文章创建的项目为例,如下:
三、修改
1、添加脚本,修改启动方式,采用npm启动
//"start": 这个是启动的字段,可以自己定义,在终端运行时对应即可 //"node src/app.js": 这个是node运行的文件 { "name": "node-demo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start":"node src/app.js", "test": "echo "Error: no test specified" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
2、使用npm启动服务
//启动服务 npm start //在终端启动后的结果输出如下 > node-demo@1.0.0 start /Users/xiayuanquan/Desktop/开发案例/NodeApp/node-demo > node src/app.js 服务器启动
四、配置
使用上面的npm现在确实可以启动服务了。但是,并不能帮助开发者每次在重新修改完服务端文件如app.js文件后重新启动服务。如果不信,可以试着修改完app.js后再次刷新web,发现web结果不会发生变化。要想使用这个Nodemon的服务重启功能,需要先安装Nodemon,然后接着配置项目的package.json文件。添加一个重启的脚本即可,如下所示:
1、安装Nodemon
// -D: dev环境 npm install nodemon -D //安装结果如下: + nodemon@2.0.2 added 106 packages from 53 contributors in 6.892s
2、修改package.json的启动命令
//"start": 新的启动脚本 //"start:node": 原启动脚本 { "name": "node-demo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start":"nodemon src/app.js", "start:node":"node src/app.js", "test": "echo "Error: no test specified" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
2、使用npm启动服务
xiayuanquan@XYQ ~/Desktop/开发案例/NodeApp/node-demo npm start > node-demo@1.0.0 start /Users/xiayuanquan/Desktop/开发案例/NodeApp/node-demo > nodemon src/app.js [nodemon] 2.0.2 //nodemon的版本 [nodemon] to restart at any time, enter `rs` //输入rs可以手动重启,如下所示 [nodemon] watching dir(s): *.* //监测的文件,"."表示所有的文件,开发者可以自定义设置 [nodemon] watching extensions: js,mjs,json [nodemon] starting `node src/app.js` 服务器启动 rs [nodemon] starting `node src/app.js` 服务器启动
3、现在手动随意修改文件,可以发现服务都会立即重启,如下所示:
4、现在修改app.js中的控制台输出内容后,在web刷新发生了变化,如下:
//web 服务 //ajax --->api --->web server(node.js) //导入http模块 const http = require(‘http‘); //创建服务器实例 //req:请求内容 //res:响应内容 const server = http.createServer((req, res)=>{ res.end(‘hello world, xiayuanquan‘); }); //服务器设置监听 //3000:监听端口号 //127.0.0.1:监听主机 //()=>{}:监听回调 server.listen(3000,‘127.0.0.1‘, ()=>{ console.log(‘服务器启动‘); });
5、现在的确实现了服务的重启功能。但是默认配置中,观察的文件是所有文件,这个对程序运行的性能是有影响的。对于一些无关紧要的文件的修改,不需要服务重启。我们可以单独给Nodemon创建一个配置文件,设置需要观察的文件。如下所示:
//监听的文件是src文件夹下任何子集下的任何文件 //也可以修改为监听js文件: "./src/**/*.js"
6、配置完后,在终端手动重启服务后。开发者再次对非观测的文件进行修改时,服务就不会重启了。只有对观测的文件做修改,服务才会传重启。
7、在启动服务时,可以打开debug模式,浏览全部的日志信息,如下所示:
//DEBUG=* : 打开了debug模式 { "name": "node-demo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "DEBUG=* nodemon src/app.js", "start:node": "node src/app.js", "test": "echo "Error: no test specified" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "nodemon": "^2.0.2" } }
启动后终端数据如下:
xiayuanquan@XYQ ~/Desktop/开发案例/NodeApp/node-demo npm start > node-demo@1.0.0 start /Users/xiayuanquan/Desktop/开发案例/NodeApp/node-demo > DEBUG=* nodemon src/app.js nodemon bus new listener: reset (0) +0ms nodemon bus new listener: reset (0) +2ms nodemon bus new listener: quit (0) +9ms nodemon bus new listener: quit (0) +0ms nodemon bus new listener: restart (0) +0ms nodemon bus new listener: restart (0) +0ms nodemon bus new listener: boot (0) +0ms nodemon bus new listener: boot (0) +0ms nodemon bus new listener: reset (2) +3ms nodemon bus emit: boot +2ms nodemon bus emit: reset +1ms nodemon resetting watchers +0ms nodemon reset +0ms nodemon config: dirs [ ‘/Users/xiayuanquan/Desktop/开发案例/NodeApp/node-demo/src‘ ] +0ms [nodemon] 2.0.2 [nodemon] to restart at any time, enter `rs` nodemon bus new listener: error (0) +62ms nodemon bus new listener: error (0) +0ms [nodemon] watching dir(s): src/**/*.* [nodemon] watching extensions: js,mjs,json [nodemon] starting `node src/app.js` nodemon:run fork sh -c node src/app.js +0ms nodemon bus new listener: exit (0) +9ms nodemon bus new listener: exit (0) +0ms nodemon:run start watch on: ./src/**/*.* +1ms nodemon start watch on: /Users/xiayuanquan/Desktop/开发案例/NodeApp/node-demo/src +70ms nodemon ignored [ ‘**/.git/**‘, ‘**/.nyc_output/**‘, ‘**/.sass-cache/**‘, ‘**/bower_components/**‘, ‘**/coverage/**‘, ‘**/node_modules/**‘, re: /.*.*/.git/.*.*|.*.*/.nyc_output/.*.*|.*.*/.sass-cache/.*.*|.*.*/bower_components/.*.*|.*.*/coverage/.*.*|.*.*/node_modules/.*.*/ ] +1ms nodemon:watch chokidar watching: /Users/xiayuanquan/Desktop/开发案例/NodeApp/node-demo/src/app.js +0ms nodemon watch is complete +25ms 服务器启动
以上是关于Node: Nodemon服务重启工具的详细使用的主要内容,如果未能解决你的问题,请参考以下文章