霞浦建设局网站域名备案和网站备案区别

张小明 2026/1/19 22:10:27
霞浦建设局网站,域名备案和网站备案区别,网络推广策划方案范文,沈阳企业黄页免费NestJS#xff1a;项目级别HMR 如果使用过NestJS#xff0c;就会知道NestJS是基于整个项目实现HMR#xff08;热更新#xff09;的。大致流程如下#xff1a;当一个源码文件变更时#xff0c;系统会自动将文件重新编译输出到dist目录#xff0c;然后重启App。当项目非常…NestJS项目级别HMR如果使用过NestJS就会知道NestJS是基于整个项目实现HMR热更新的。大致流程如下当一个源码文件变更时系统会自动将文件重新编译输出到dist目录然后重启App。当项目非常大时这样的HMR机制就会非常慢。VonaJS文件级别HMR而VonaJS就实现了基于单文件的精确HMR热更新。大致流程如下当源码文件变更时系统会自动重新导入该文件并替换IOC容器中注册的实例。既没有重新编译的环节也不需要重启App。如果你要开发大型项目没有比这个更爽的HMR机制了。下面先简要看看VonaJS HMR的效果再介绍是如何实现的文件级别HMR效果展示1. 修改Service文件当我们修改某个Service文件并保存之后控制台显示如下2. 修改Controller文件当我们修改某个Controller文件并保存之后控制台显示如下3. 修改Middleware文件当我们修改某个Middleware文件并保存之后控制台显示如下文件级别HMR原理分析1. 分布式场景中如何实现文件WatchVonaJS原生支持分布式架构因此在执行npm run dev时也是默认启动两个Workers便于尽早排查分布式场景下可能遇到的问题。那么在分布式场景中我们需要挑选出一个Worker用于监听文件的变更事件。VonaJS提供了Election机制代码如下exportclassMonkey{asyncappStarted(){constscopethis.app.scope(__ThisModule__);scope.election.obtain(hmr,async(){awaitscope.service.watch.start();},async(){awaitscope.service.watch.stop();});}}响应系统启动事件通过scope.election.obtain竞争所有权当取得所有权时执行scope.service.watch.start实现文件监听当释放所有权时执行scope.service.watch.stop停止文件监听2. ESM文件重新加载当监听到源码文件变更之后需要重新加载。我们知道一个文件import之后系统会自动缓存如果再次import系统会直接使用缓存不会重新加载。那么我们是否可以强制清理系统缓存呢在CJS中是可以的但在ESM中不行。NestJS开发时间比较早到目前为止仍然使用的是CJS模块。在NestJS中源码采用的是ESM语法但是实际运行时需要先编译成CJS模块然后再通过require加载模块。而VonaJS是全新设计的框架全部使用了ESM模块。虽然不能删除系统缓存但是可以通过变更文件名的方式来实现重新加载代码如下constfile/path/to/service.ts;constfileUrl${file}?${Date.now()};constfileModuleawaitimport(fileUrl);3. 清理运行状态值当文件重新加载之后就可以替换IOC容器中注册的实例。除此之外还有可能需要清理一些运行状态值。这就需要具体问题具体分析。比如Server文件不需清理运行状态值。但是Middleware就需要清理运行状态从而让新的Middleware生效下面以系统中间件为例演示基本流程当系统启动时需要注入系统中间件this.app.use((ctx,next){return_composeMiddlewareSystems(this.app)(ctx,next);});function_composeMiddlewareSystems(app:VonaApplication){// composeif(!app.meta[SymbolCacheComposeMiddlewareSystems]){constmiddlewaresapp.bean.onion.middlewareSystem.getOnionsEnabledWrapped(item{return_wrapOnion(app,item);});app.meta[SymbolCacheComposeMiddlewareSystems]compose(middlewares);}returnapp.meta[SymbolCacheComposeMiddlewareSystems];}_composeMiddlewareSystems方法将收集所有系统中间件并compose成一个函数然后缓存到app.meta[SymbolCacheComposeMiddlewareSystems]中清理运行状态Hmr()exportclassHmrMiddlewareSystemextendsBeanBaseimplementsIHmrReload{asyncreload(_beanOptions:IDecoratorBeanOptionsBase){deletethis.app.meta[SymbolCacheComposeMiddlewareSystems];}}当某个系统中间件重新加载后就会自动执行该Class的reload方法删除缓存app.meta[SymbolCacheComposeMiddlewareSystems]。从而让_composeMiddlewareSystems方法重新收集所有系统中间件compose出一个新的函数4. 支持更多场景如上所述不同场景的文件需要根据不同的运行机制提供不同的清理逻辑确保文件级别的HMR可以正常运行VonaJS支持大量的场景开发清单如下Vona AspectVona BeanVona CreateVona InitVona MetaVona Tools资源Githubhttps://github.com/vonajs/vona文档https://vona.js.org
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

阿里虚拟主机怎么做两个网站吗竞价单页制作

二进制表示中质数个计算置位 问题描述 给你两个整数 left 和 right,请你找到在 [left, right] 范围内,计算置位位数为质数的整数个数。 计算置位:指二进制表示中 1 的个数。质数:大于 1 且只能被 1 和自身整除的数。 注意&…

张小明 2026/1/17 22:01:49 网站建设

岳阳市 网站建设舆情分析招聘

第一章:网络安全的基本概念和术语 网络安全是指保护网络系统、硬件、软件、数据以及用户的隐私和权益,防止其受到未经授权的访问、篡改、窃取或破坏。以下是一些网络安全的基本概念和术语: 漏洞(Vulnerability)&…

张小明 2026/1/17 22:01:50 网站建设

重庆动画网站建设做网站的代码难吗

第一章:PHP配置管理的现状与挑战在现代Web开发中,PHP依然广泛应用于各类项目,从传统内容管理系统到微服务架构均有其身影。然而,随着应用复杂度提升,配置管理逐渐成为影响可维护性与部署效率的关键因素。许多项目仍依赖…

张小明 2026/1/17 22:01:51 网站建设

怎样建设和维护网站微信机器人 wordpress 插件

想要在英雄联盟游戏中实现真正的自动化操作吗?LeagueAkari正是你需要的专业工具集!这款基于LCU API技术开发的英雄联盟辅助工具,为召唤师们提供了从游戏准备到数据分析的完整智能化体验。 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff…

张小明 2026/1/17 22:01:52 网站建设

做网站的费用 可以抵扣吗哪个网站是做安全教育

想要将英雄联盟的精彩操作变成专业级视频作品吗?League Director这款开源工具让你从普通玩家变身视频导演。作为专业的英雄联盟回放视频制作工具,它提供了完整的相机控制、时间轴编辑和录制输出功能,让你的游戏瞬间焕发新的生命力。 【免费下…

张小明 2026/1/17 22:01:52 网站建设

电子商务网站建设的论文网站服务器怎么看是哪个厂家的

大数据领域数据编目:实现数据高效利用的“地图工程” 引言:你是否也在经历“数据迷宫”? 深夜十点,电商公司的分析师小杨还在电脑前抓狂——领导要“近30天新用户的留存率”,他得先找用户注册数据在哪里:是Hive里的user_register表?还是MySQL的crm_user表?抑或是Mong…

张小明 2026/1/17 22:01:53 网站建设