总结一下这两天学(chao)习(xi)大腿们的项目源码。
这两天都是在关注nodejs热更新部分,直接上心得吧。
热更新主要就是三个插件,gulp,gulp-nodemon,browser-sync。
gulp,前端配置自动化工具。
gulp-nodemon,重启服务器的插件,我的理解应该是gulp与nodemon的一个中间件吧,刚入坑瞎猜的。
browser-sync,顾名思义,浏览器同步更新插件。
首先,在package.json的script里添加一个server: gulp server的启动项。这样就可以不用全局安装gulp了。
然后创建gulpfile.js,引入必要的东西,gulp,gulp-nodemon,browser-sync,引入path库,用于路径的合成。
接下来首先写一个启动的task。因为我们启动的是server,就写一个server的task。这里有两点:
1、这个task依赖与browser-sync的task,虽然我们执行的是server的task,但是因为依赖的关系,它会先执行browser-sync的task,再执行自己。
2、server的task里面有一个watch,用于监听文件的变化,依赖bs-delay的task,每次watch到修改都会执行bs-delay的task。
接着写server所依赖的browser-sync的task:
1、browser-sync的task依旧是有前置依赖,执行这个task前会先去搜寻nodemon这个task,nodemon这个task执行完毕后,才会执行browser-sync。
2、自己里边是执行了初始化browser-sync的浏览器热更新插件。
这里配置默认起的端口是3000,因为是参考性的研究,所以我这里写需要被代理服务器参数时就直接把3000端口写了上去。
至于browser-sync有什么参数可以去官网的api里查询。
然后再继续探索一下上一个task的前置任务,nodemon task:
启动nodemon用。没什么好说的,有兴趣可以去看看nodemon的api:
大致就是这样吧,这段代码完成了以后就可以实现nodejs的热更新了。