97色伦色在线综合视频,无玛专区,18videosex性欧美黑色,日韩黄色电影免费在线观看,国产精品伦理一区二区三区,在线视频欧美日韩,亚洲欧美在线中文字幕不卡

霞浦建設(shè)局網(wǎng)站域名備案和網(wǎng)站備案區(qū)別

鶴壁市浩天電氣有限公司 2026/01/24 09:13:20
霞浦建設(shè)局網(wǎng)站,域名備案和網(wǎng)站備案區(qū)別,網(wǎng)絡(luò)推廣策劃方案范文,沈陽(yáng)企業(yè)黃頁(yè)免費(fèi)NestJS#xff1a;項(xiàng)目級(jí)別HMR 如果使用過(guò)NestJS#xff0c;就會(huì)知道NestJS是基于整個(gè)項(xiàng)目實(shí)現(xiàn)HMR#xff08;熱更新#xff09;的。大致流程如下#xff1a;當(dāng)一個(gè)源碼文件變更時(shí)#xff0c;系統(tǒng)會(huì)自動(dòng)將文件重新編譯輸出到dist目錄#xff0c;然后重啟App。當(dāng)項(xiàng)目非常…NestJS項(xiàng)目級(jí)別HMR如果使用過(guò)NestJS就會(huì)知道NestJS是基于整個(gè)項(xiàng)目實(shí)現(xiàn)HMR熱更新的。大致流程如下當(dāng)一個(gè)源碼文件變更時(shí)系統(tǒng)會(huì)自動(dòng)將文件重新編譯輸出到dist目錄然后重啟App。當(dāng)項(xiàng)目非常大時(shí)這樣的HMR機(jī)制就會(huì)非常慢。VonaJS文件級(jí)別HMR而VonaJS就實(shí)現(xiàn)了基于單文件的精確HMR熱更新。大致流程如下當(dāng)源碼文件變更時(shí)系統(tǒng)會(huì)自動(dòng)重新導(dǎo)入該文件并替換IOC容器中注冊(cè)的實(shí)例。既沒(méi)有重新編譯的環(huán)節(jié)也不需要重啟App。如果你要開(kāi)發(fā)大型項(xiàng)目沒(méi)有比這個(gè)更爽的HMR機(jī)制了。下面先簡(jiǎn)要看看VonaJS HMR的效果再介紹是如何實(shí)現(xiàn)的文件級(jí)別HMR效果展示1. 修改Service文件當(dāng)我們修改某個(gè)Service文件并保存之后控制臺(tái)顯示如下2. 修改Controller文件當(dāng)我們修改某個(gè)Controller文件并保存之后控制臺(tái)顯示如下3. 修改Middleware文件當(dāng)我們修改某個(gè)Middleware文件并保存之后控制臺(tái)顯示如下文件級(jí)別HMR原理分析1. 分布式場(chǎng)景中如何實(shí)現(xiàn)文件WatchVonaJS原生支持分布式架構(gòu)因此在執(zhí)行npm run dev時(shí)也是默認(rèn)啟動(dòng)兩個(gè)Workers便于盡早排查分布式場(chǎng)景下可能遇到的問(wèn)題。那么在分布式場(chǎng)景中我們需要挑選出一個(gè)Worker用于監(jiān)聽(tīng)文件的變更事件。VonaJS提供了Election機(jī)制代碼如下exportclassMonkey{asyncappStarted(){constscopethis.app.scope(__ThisModule__);scope.election.obtain(hmr,async(){awaitscope.service.watch.start();},async(){awaitscope.service.watch.stop();});}}響應(yīng)系統(tǒng)啟動(dòng)事件通過(guò)scope.election.obtain競(jìng)爭(zhēng)所有權(quán)當(dāng)取得所有權(quán)時(shí)執(zhí)行scope.service.watch.start實(shí)現(xiàn)文件監(jiān)聽(tīng)當(dāng)釋放所有權(quán)時(shí)執(zhí)行scope.service.watch.stop停止文件監(jiān)聽(tīng)2. ESM文件重新加載當(dāng)監(jiān)聽(tīng)到源碼文件變更之后需要重新加載。我們知道一個(gè)文件import之后系統(tǒng)會(huì)自動(dòng)緩存如果再次import系統(tǒng)會(huì)直接使用緩存不會(huì)重新加載。那么我們是否可以強(qiáng)制清理系統(tǒng)緩存呢在CJS中是可以的但在ESM中不行。NestJS開(kāi)發(fā)時(shí)間比較早到目前為止仍然使用的是CJS模塊。在NestJS中源碼采用的是ESM語(yǔ)法但是實(shí)際運(yùn)行時(shí)需要先編譯成CJS模塊然后再通過(guò)require加載模塊。而VonaJS是全新設(shè)計(jì)的框架全部使用了ESM模塊。雖然不能刪除系統(tǒng)緩存但是可以通過(guò)變更文件名的方式來(lái)實(shí)現(xiàn)重新加載代碼如下constfile/path/to/service.ts;constfileUrl${file}?${Date.now()};constfileModuleawaitimport(fileUrl);3. 清理運(yùn)行狀態(tài)值當(dāng)文件重新加載之后就可以替換IOC容器中注冊(cè)的實(shí)例。除此之外還有可能需要清理一些運(yùn)行狀態(tài)值。這就需要具體問(wèn)題具體分析。比如Server文件不需清理運(yùn)行狀態(tài)值。但是Middleware就需要清理運(yùn)行狀態(tài)從而讓新的Middleware生效下面以系統(tǒng)中間件為例演示基本流程當(dāng)系統(tǒng)啟動(dòng)時(shí)需要注入系統(tǒng)中間件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方法將收集所有系統(tǒng)中間件并compose成一個(gè)函數(shù)然后緩存到app.meta[SymbolCacheComposeMiddlewareSystems]中清理運(yùn)行狀態(tài)Hmr()exportclassHmrMiddlewareSystemextendsBeanBaseimplementsIHmrReload{asyncreload(_beanOptions:IDecoratorBeanOptionsBase){deletethis.app.meta[SymbolCacheComposeMiddlewareSystems];}}當(dāng)某個(gè)系統(tǒng)中間件重新加載后就會(huì)自動(dòng)執(zhí)行該Class的reload方法刪除緩存app.meta[SymbolCacheComposeMiddlewareSystems]。從而讓_composeMiddlewareSystems方法重新收集所有系統(tǒng)中間件compose出一個(gè)新的函數(shù)4. 支持更多場(chǎng)景如上所述不同場(chǎng)景的文件需要根據(jù)不同的運(yùn)行機(jī)制提供不同的清理邏輯確保文件級(jí)別的HMR可以正常運(yùn)行VonaJS支持大量的場(chǎng)景開(kāi)發(fā)清單如下Vona AspectVona BeanVona CreateVona InitVona MetaVona Tools資源Githubhttps://github.com/vonajs/vona文檔https://vona.js.org
版權(quán)聲明: 本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)聯(lián)系我們進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

ppt做書模板下載網(wǎng)站wordpress 分類目錄排序

ppt做書模板下載網(wǎng)站,wordpress 分類目錄排序,微盟集團(tuán),163企業(yè)郵箱注冊(cè)入口還在為網(wǎng)絡(luò)不穩(wěn)定而無(wú)法暢享Steam游戲聯(lián)機(jī)樂(lè)趣而煩惱嗎#xff1f;#x1f680; SKYNET Stea

2026/01/21 18:30:01

網(wǎng)站開(kāi)發(fā)用什么筆記本wikiesu wordpress

網(wǎng)站開(kāi)發(fā)用什么筆記本,wikiesu wordpress,陜西省建設(shè)廳網(wǎng)站,做的比較好的網(wǎng)頁(yè)設(shè)計(jì)網(wǎng)站抖音批量下載終極教程#xff1a;一鍵搞定無(wú)水印高清視頻 【免費(fèi)下載鏈接】douyin-downlo

2026/01/23 02:48:01

校園網(wǎng)站建設(shè)方案模板下載iis網(wǎng)站服務(wù)器 建立出現(xiàn)問(wèn)題

校園網(wǎng)站建設(shè)方案模板下載,iis網(wǎng)站服務(wù)器 建立出現(xiàn)問(wèn)題,個(gè)人養(yǎng)老保險(xiǎn)怎么買,北京 網(wǎng)站建設(shè) SEO在現(xiàn)代生命科學(xué)的研究中#xff0c;抗體作為關(guān)鍵工具#xff0c;廣泛應(yīng)用于免疫學(xué)、細(xì)胞生物學(xué)及藥物

2026/01/21 17:00:01