Node实战008利用Nodemon实现服务自动重启
我们在开发Node服务时每当更改文件内容时都需要需重启一下服务功能才能生效,如果每次代码修改都要重复这样的操作势必会影响开发效率。所以我们希望每当文件被修改之后服务可以自行重启,不需要我们再去手动执行(把更多的精力都放到业务逻辑实现上)。而Nodemon就可以帮助我们实现这一功能,它可以监控你的node.js源码改变并自动重启你的服务器。
Nodemon安装
在nodejs应用程序中使用Nodemon包非常简单,我们只要通过npm就可以快速地安装该工具包。为了可以直接使用nodemon来代替node启动应用我们采用全局安装,安装完 nodemon 后就可以用 nodemon 来代替 node 来启动应用。npm install -g nodemon //如果想用nodemon来代替node启动应用可以全局安装 + nodemon@2.0.7 added 117 packages from 53 contributors in 17.558s 11 packages are looking for funding run `npm fund` for detailsNodemon使用
Nodemon使用非常的简单,直接nodemon + app(JavaScript文件)就可以启动了。你也可以在启动的时候添加参数来指定如何启动,比如以debug模式运行:node bin/app.js --debug。更多功能我们可以通过命令:nodemon -h 或者 nodemon --help来查看帮助文档,官网给出的几个nodemon例子。当我们通过nodemon启动服务后,它会监测项目中的所有文件。一旦发现文件有改动,nodemon会自动重启node服务。# nodemon -h 或者 nodemon --help Options: --config file ............ alternate nodemon.json config file to use -e, --ext ................ extensions to look for, ie. js,pug,hbs. -x, --exec app ........... execute script with "app", ie. -x "python -v". -w, --watch path ......... watch directory "path" or files. use once for each directory or file to watch. -i, --ignore ............. ignore specific files or directories. -V, --verbose ............ show detail on what is causing restarts. -- ........... to tell nodemon stop slurping arguments. Examples: $ nodemon server.js $ nodemon -w ../foo server.js apparg1 apparg2 $ nodemon --exec python app.py $ nodemon --exec "make build" -e "styl hbs" $ nodemon app.js -- --config # pass config to app.jsNodemon配置
Nodemon除了可以通过命令行使用,也可以通过配置文件来使用。该文件一般命名为nodemon.json,放在当前项目的根目录中。在该文件中我们可以来配置nodemon属性,然后使用该--config 选项指定本地配置文件。{ "restartable":"rs", //重启的命令,默认是rs,可以自定义 "ignore":[""], //忽略的文件,文件路径相对于nodemon.json所在位置 "verbose": true, //输出详细启动与重启信息,false则不输出运行信息 "execMap":{ //运行服务的后缀名和对应的运行命令 "js":"node", //nodemon代替node运行js后缀文件 }, "events":{ //nodemon运行到某些状态时的触发事件 "start":"gulp", //子进程(即监控的应用)启动 "crash":"", //子进程崩溃,不会触发 exit "exit":"", //子进程完全退出,不是非正常的崩溃 "restart":"gulp", //子进程重启 }, "ext": "js json", //监控指定后缀名的文件,用空格间隔 "watch":[ //监控的文件夹路径或者文件路径 "./src/*" //文件路径相对于nodemon.json所在位置 ], "env":{ //node运行环境 "NODE_ENV":"env", //env指开发环境; 运行环境 development; production 是生产环境 "PORT":"8000" //启动端口号 }, "legacy-watch":false //开启Chokidar监控系统,失败则使用轮询模式(true)。 }package.json设置
如果你不想配置nodemon.json文件也可以直接嵌入package.json文件中,每个项目的根目录下面都有一个package.json文件。该文件定义了项目所需要的各种模块以及项目的配置信息,也指定了项目所需的运行条件和开发环境。package.json文件是一个JSON对象,每个成员对应项目的一项设置。package.json详细配置可以参考文章:Node实战005:JavaScript包管理工具NPM详解,下面是nodemon官方提供的package.json设置示例。{ "name": "nodemon", "homepage": "http://nodemon.io", "...": "... other standard package.json values", "nodemonConfig": { "ignore": ["test/*", "docs/*"], "delay": "2500" } }总结:
如果你在package.json中设置nodemon的话就不能再配置nodemon.json文件,否则package.json中的配置会被忽略。最简单的方法配置package.js 文件中的 scripts.start选项,指定 "start": "nodemon ./bin/app.js"就可以用npm run start 来执行 nodemon ./bin/app.js。
我的礼物FREETIE潮流百搭休闲老爹鞋前言从教26年的老妈我习惯叫她老法师,但是老妈一直认为她还和我是没有代沟的。这不,正值我生日,老妈不仅给了我红包,还亲自为我挑选了FREETIE潮流百搭休闲老爹鞋,并美其名曰是复古
穿着FREETIE云弹减震运动鞋开启双节云游生活前言穿惯了运动鞋,所以总是喜欢关注运动鞋。家里的鞋子款式样式无数,可是每每看到漂亮舒适的鞋子总是会毫不手软的下手一双。最近的爱物是FREETIE云弹减震运动鞋。这种鞋子脚感比其他鞋
Orico分线器开箱上手体验前些天入手了两个Orico的分线器,分别是4口和7口,之前都是使用拓展坞的习惯,固定使用便携性还好,但是出门在外又不需要像拓展坞那么丰富的功能的时候,一个支持USB3。0还可以ty
SONYA7M3R3的斯莫格兔笼选择指南前言作为一名海外记者兼影视从业者,我在工作和生活中和相机有着深厚的交情,基本处于每天都要抚摸它的状态。出门大包小包,别人都是带着旅行用品,而我却带着成箱的摄影器材。谈到器材,咱们今
咖啡杯里有故事花絮许多人不喜欢喝咖啡,却喜欢咖啡馆的闲适,点一杯咖啡,或许十分钟喝完,或许喝上一个下午,安静温馨,静静的看着窗外,细细回味着曾经,时间仿佛静止了一样。每一个喝咖啡的人,或多或少总
穿上抗菌防泼水袜套健步鞋锻炼去前言专业医生会告诉我们每天坚持锻炼可以改善心脏和肺脏的功能,可以改善血脂的代谢可以减轻体重,降低体重的脂肪比例,让肌肉更加发达,而且能够增加基础代谢率最后还有可能改善骨骼的力量,让
中秋佳节,我陪爷爷饮小酒前言每逢佳节倍思亲,我觉得心能在一起就是团圆,打小家里就有着团圆之夜饮酒聊天的习惯,今年我为迎接这次双节同日,我入手了两套热门的白酒进行横评体验让家里人一同来品尝感受下这几种的不同
巧遇双节同日,好友有口福喝到我自制的咖啡啦前言中秋国庆双节重合,2020年是一个有灾难,但又幸福满满的年份。我们遭遇了新冠病毒的威胁,我们被禁足不能朋友相聚,可是我们更欣慰的是国之强大,很快中国人征服了新冠病毒。在这个双庆
出行小帮手小米小背包前言看着周围的人接连打出三个喷嚏的滑稽模样,我意识到已经入秋很久了,外出拍摄除了携带众多设备之外,我还需要带上几件保暖的衣物和烫嘴的热水,以防我趴在拍摄车上被风吹得一把鼻涕一把泪。
甲方克星!斯莫格A7R3相机兔笼体验前言作为一位长期在海外拍摄各类题材的影视工作者,对接过有各类需求且形形色色的甲方,他们有时候会在工作后期提出一些问题以及建议,他们还可能会在前期拍摄的现场产生一些疑问,尤其是使用索
这一次耳朵真的不疼了南卡Runner骨传导蓝牙耳机体验前言用惯了各种插入耳朵的耳机,这一次见到了不用入耳的骨传导耳机,我还是感到很新奇,我好奇它如何不入耳,就能有好的音质好奇它如何做到保护耳朵初印象正面是NINEKA的logo和这次的