<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        詳解Angular5/Angular6項目如何添加熱更新(HMR)功能

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:06:21
        文檔

        詳解Angular5/Angular6項目如何添加熱更新(HMR)功能

        詳解Angular5/Angular6項目如何添加熱更新(HMR)功能:本文介紹了詳解Angular5/Angular6項目如何添加熱更新(HMR)功能,分享給大家,具體如下: A:什么是HMR? Q:HMR(熱替換)用于在運(yùn)行的應(yīng)用程序中更新代碼而不需要重建它。這將導(dǎo)致更快的更新和更少的全頁重新加載。 angular6-hmr 提供ang
        推薦度:
        導(dǎo)讀詳解Angular5/Angular6項目如何添加熱更新(HMR)功能:本文介紹了詳解Angular5/Angular6項目如何添加熱更新(HMR)功能,分享給大家,具體如下: A:什么是HMR? Q:HMR(熱替換)用于在運(yùn)行的應(yīng)用程序中更新代碼而不需要重建它。這將導(dǎo)致更快的更新和更少的全頁重新加載。 angular6-hmr 提供ang

        本文介紹了詳解Angular5/Angular6項目如何添加熱更新(HMR)功能,分享給大家,具體如下:

        A:什么是HMR?

        Q:HMR(熱替換)用于在運(yùn)行的應(yīng)用程序中更新代碼而不需要重建它。這將導(dǎo)致更快的更新和更少的全頁重新加載。

        angular6-hmr

        提供angular6以上HMR(熱更新)功能

        步驟

        1、進(jìn)入angular項目父級目錄內(nèi)

        git clone https://github.com/staven630/angular6-hmr

        angular6-hmr目錄與angular項目(例如:my-app)是同級關(guān)系

        2、執(zhí)行g(shù)ulp hmr --dir angular目錄名

        如:

        npm i
        gulp hmr --dir my-app

        3、進(jìn)入angular項目目錄,安裝@angularclass/hmr

        npm install --save-dev @angularclass/hmr --registry https://registry.npm.taobao.org

        4、這樣angular項目的HMR就配置完成了,執(zhí)行

        npm run hmr

        注:保持項目名(package.json中的name)與項目目錄名一致

        以下為手動配置步驟

        Angular6添加HMR

        environments目錄

        environments.ts和environment.prod.ts增加hmr: false

        export const environment = {
         hmr: false
        };

        復(fù)制environment新增environment.hmr.ts修改hmr:true

        export const environment = {
         hmr: true
        };
        

        .angular.json文件

        build的configurations中添加

        "hmr": {
         "fileReplacements": [
         {
         "replace": "src/environments/environment.ts",
         "with": "src/environments/environment.hmr.ts"
         }
         ]
        }
        

        serve的configurations中添加

        "hmr": {
         "hmr": true,
         "browserTarget": "my-app:build:hmr"
        }
        

        tsconfig.app.json的compilerOptions的types中添加

        "types": ["node"]

        package.json的scripts中添加

        "hmr": "ng serve --configuration hmr --open"

        安裝依賴

        npm install --save-dev @angularclass/hmr

        src目錄下創(chuàng)建hmr.ts

        import { NgModuleRef, ApplicationRef } from '@angular/core';
        import { createNewHosts } from '@angularclass/hmr';
        
        export const hmrBootstrap = (module: any, bootstrap: () => Promise<NgModuleRef<any>>) => {
         let ngModule: NgModuleRef<any>;
         module.hot.accept();
         bootstrap().then(mod => ngModule = mod);
         module.hot.dispose(() => {
         const appRef: ApplicationRef = ngModule.injector.get(ApplicationRef);
         const elements = appRef.components.map(c => c.location.nativeElement);
         const makeVisible = createNewHosts(elements);
         ngModule.destroy();
         makeVisible();
         });
        };
        
        

        修改main.ts

        import { enableProdMode } from '@angular/core';
        import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
        
        import { AppModule } from './app/app.module';
        import { environment } from './environments/environment';
        
        import { hmrBootstrap } from './hmr';
        
        if (environment.production) {
         enableProdMode();
        }
        
        const bootstrap = () => platformBrowserDynamic().bootstrapModule(AppModule);
        
        if (environment.hmr) {
         if (module[ 'hot' ]) {
         hmrBootstrap(module, bootstrap);
         } else {
         console.error('HMR is not enabled for webpack-dev-server!');
         console.log('Are you using the --hmr flag for ng serve?');
         }
        } else {
         bootstrap().catch(err => console.log(err));
        }

        Angular5添加HMR

        environments目錄

        environments.ts和environment.prod.ts增加hmr: false

        export const environment = {
         hmr: false
        };
        

        復(fù)制environment新增environment.hmr.ts修改hmr:true

        export const environment = {
         hmr: true
        };
        

        .angular-cli.json的environments中添加

        "hmr": "environments/environment.hmr.ts"

        在package.json的scripts中增加

        "hmr": "ng serve --hmr -e=hmr --open"

        安裝依賴

        npm install --save-dev @angularclass/hmr

        src目錄下創(chuàng)建hmr.ts

        import { NgModuleRef, ApplicationRef } from '@angular/core';
        import { createNewHosts } from '@angularclass/hmr';
        
        export const hmrBootstrap = (module: any, bootstrap: () => Promise<NgModuleRef<any>>) => {
         let ngModule: NgModuleRef<any>;
         module.hot.accept();
         bootstrap().then(mod => ngModule = mod);
         module.hot.dispose(() => {
         const appRef: ApplicationRef = ngModule.injector.get(ApplicationRef);
         const elements = appRef.components.map(c => c.location.nativeElement);
         const makeVisible = createNewHosts(elements);
         ngModule.destroy();
         makeVisible();
         });
        };
        
        

        修改main.ts

        import { enableProdMode } from '@angular/core';
        import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
        
        import { AppModule } from './app/app.module';
        import { environment } from './environments/environment';
        
        import { hmrBootstrap } from './hmr';
        
        if (environment.production) {
         enableProdMode();
        }
        
        const bootstrap = () => platformBrowserDynamic().bootstrapModule(AppModule);
        
        if (environment.hmr) {
         if (module[ 'hot' ]) {
         hmrBootstrap(module, bootstrap);
         } else {
         console.error('HMR is not enabled for webpack-dev-server!');
         console.log('Are you using the --hmr flag for ng serve?');
         }
        } else {
         bootstrap().catch(err => console.log(err));
        }
        
        

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        詳解Angular5/Angular6項目如何添加熱更新(HMR)功能

        詳解Angular5/Angular6項目如何添加熱更新(HMR)功能:本文介紹了詳解Angular5/Angular6項目如何添加熱更新(HMR)功能,分享給大家,具體如下: A:什么是HMR? Q:HMR(熱替換)用于在運(yùn)行的應(yīng)用程序中更新代碼而不需要重建它。這將導(dǎo)致更快的更新和更少的全頁重新加載。 angular6-hmr 提供ang
        推薦度:
        標(biāo)簽: angular angular6 angular項目
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲综合一区二区国产精品| 亚洲欧洲无码一区二区三区| 亚洲视频在线观看地址| 国产精品99爱免费视频| 午夜国产精品免费观看| 亚洲国产精品白丝在线观看| 成人免费黄色网址| 国产亚洲中文日本不卡二区| 99免费精品视频| 国产免费怕怕免费视频观看| 亚洲国产av玩弄放荡人妇| 国产成人免费一区二区三区| 日韩在线观看视频免费| 日韩人妻无码免费视频一区二区三区 | 免费观看a级毛片| 久久久久久亚洲精品无码| 国产免费爽爽视频免费可以看| 国产精品亚洲精品久久精品| 最近中文字幕高清免费中文字幕mv| 亚洲欧洲自拍拍偷精品 美利坚| 老司机午夜在线视频免费观| 亚洲夜夜欢A∨一区二区三区| 在线91精品亚洲网站精品成人| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲国产精品自在拍在线播放| 国产精品偷伦视频免费观看了| 久久九九亚洲精品| 一个人看的www在线免费视频 | 亚洲日本一区二区一本一道 | 亚洲色无码一区二区三区| 99久久国产免费-99久久国产免费| 亚洲18在线天美| 亚洲免费在线观看| 7x7x7x免费在线观看| 亚洲av永久无码精品秋霞电影秋| 亚洲国产精品狼友中文久久久| 久久精品国产免费一区| 亚洲成av人片天堂网| 97无码免费人妻超级碰碰夜夜| 伊人久久五月丁香综合中文亚洲 | 亚洲妇女熟BBW|