• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
    當前位置: 首頁 - 科技 - 知識百科 - 正文

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

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

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

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

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

    A:什么是HMR?

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

    angular6-hmr

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

    步驟

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

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

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

    2、執(zhí)行gulp hmr --dir angular目錄名

    如:

    npm i
    gulp hmr --dir my-app

    3、進入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
    };

    復制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
    };
    

    復制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)容旨在傳播知識,若有侵權等問題請及時與本網(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(熱替換)用于在運行的應用程序中更新代碼而不需要重建它。這將導致更快的更新和更少的全頁重新加載。 angular6-hmr 提供ang
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品免费一区二区三区| 88国产精品欧美一区二区三区| 99精品久久精品| 三级国产精品| 国产精品VIDEOSSEX久久发布| 久久精品人人做人人爽97| 婷婷成人国产精品| 56prom精品视频在放免费| MM1313亚洲国产精品| 亚洲精品乱码久久久久66| 久久久久久一区国产精品| 99亚洲精品视频| 久久精品国产69国产精品亚洲| 日韩精品国产另类专区| 无码精品人妻一区| 精品久久久久中文字| 久久精品国产99国产电影网| 久久99精品久久久久久动态图| 亚洲精品乱码久久久久久蜜桃图片| 日韩精品人成在线播放| 精品精品国产国产| 国产精品国产三级在线高清观看| 国产亚洲精品精华液| 久久久国产精品亚洲一区| 无码人妻精品一区二区三区久久久| 亚洲国产成人久久精品99 | 亚洲精品无码你懂的网站| 国产在线观看一区二区三区精品| 四虎国产精品免费久久久| 99久久免费国产精品热| 精品久久久久久久久午夜福利| 亚洲精品美女久久777777| 中国国产精品| 亚洲国产一成久久精品国产成人综合 | 狠狠色伊人久久精品综合网 | 中文无码久久精品| 天天爽夜夜爽8888视频精品| 国产精品国产三级国产AⅤ| 2021年精品国产福利在线| 中文字幕精品视频| 国产精品无码免费播放|