<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      webpack生產(chǎn)環(huán)境優(yōu)化:PWA

      轉(zhuǎn)載請(qǐng)注明 來源:http://www.eword.name/
      Author:eword
      Email:eword@eword.name

      webpack生產(chǎn)環(huán)境優(yōu)化:PWA

      PWA可簡(jiǎn)稱為“離線可訪問技術(shù)”。

      一、下載插件

      PWA: 漸進(jìn)式網(wǎng)絡(luò)開發(fā)應(yīng)用程序(離線可訪問) ,需要插件workbox-webpack-plugin的支持。
      workbox --〉 workbox-webpack-plugin
      這里使用workbox-webpack-plugin@5.0.0

      > npm i -D workbox-webpack-plugin@5.0.0
      

      二、核心配置

      2.1、配置webpack.config.js

      /*
          webpack.config.js webpack的配置文件
          路徑: ./webpack.config.js
      */
              ……
              
      // 引入PWA支持插件workbox-webpack-plugin
      const WorkboxWebpackPlugin = require('workbox-webpack-plugin');
      
      module.exports = {
          
              ……
              
          // plugins的配置
          plugins: [
              // 詳細(xì)的plugins配置
      
              ……
      
              // 離線可訪問技術(shù)PWA
              new WorkboxWebpackPlugin.GenerateSW({
              /* 
                  1.豬助serviceworker快速啟動(dòng)
                  2.時(shí)除舊的 serviceworker
                  
                  生成一個(gè) serviceworker 配罝文件~
              */
                  clientsClaim: true,
                  skipWaiting: true
              })
              
          ],
          
              ……
              
      }
      

      核心配置

      /*
          webpack.config.js webpack的配置文件
          路徑: ./webpack.config.js
          在plugins配置中加入workbox-webpack-plugin插件配置。
      */
      
              // 離線可訪問技術(shù)PWA
              new WorkboxWebpackPlugin.GenerateSW({
              /* 
                  1.豬助serviceworker快速啟動(dòng)
                  2.時(shí)除舊的 serviceworker
                  
                  生成一個(gè) serviceworker 配罝文件~
              */
                  clientsClaim: true,
                  skipWaiting: true
              })
      

      2.2、package.json配置

      eslint不認(rèn)識(shí) window. navigator全局變最
      解決:需要修改package.json中eslintConfig配罝

        "eslintConfig": {
          "extends": "airbnb-base",
          "env": {
            "browser": true   //支持瀏覽器端全局變量
          }
        }
      

      2.3、js入口文件注冊(cè)serviceWorker

      在js入口文件中注冊(cè)打包生成的service-worker.js文件

      // ./src/js/index.js
      
      // 注冊(cè) serviceworker
      // 處理兼容性問題
      if ('serviceWorker' in  navigator) {
          window.addEventListener('load', () => {
              navigator.serviceWorker
                  .register('/service-worker.js')
                  .then(() => {
                      console.log('serviceworker注冊(cè)成功了~')
                  })
                  .catch(() => {
                      console.log('serviceworker注冊(cè)失敗了~')
                  })
          });
      }
      

      三、測(cè)試PWA

      3.1、下載服務(wù)器支持庫

      serviceworker代碼必須運(yùn)行在服務(wù)器上。
      為了方便測(cè)試,這里下載serve做為nodejs服務(wù)器。
      這里使用serve@11.3.0版本。

      > npm i -g serve@11.3.0
      

      3.2、運(yùn)行服務(wù)器

      # 先打包構(gòu)建生成service-worker.js文件
      > npx webpack
      
      # 啟動(dòng)服務(wù)器,將build目錄下所有資源作為靜態(tài)資源暴露出去
      > serve -s build
      
      
         ┌────────────────────────────────────────────────────┐
         │                                                    │
         │   Serving!                                         │
         │                                                    │
         │   - Local:            http://localhost:54551       │
         │   - On Your Network:  http://172.10.10.107:54551   │
         │                                                    │
         │   This port was picked because 5000 is in use.     │
         │                                                    │
         │   Copied local address to clipboard!               │
         │                                                    │
         └────────────────────────────────────────────────────┘
      

      3.3、瀏覽器訪問

      瀏覽器訪問返回的web服務(wù)器地址:http://localhost:54551

      四、工程文件目錄

      .
      ├── build     //構(gòu)建打包生成的目錄
      │   ├── css
      │   │   └── 42c0dc2a54.css
      │   ├── imgs
      │   │   └── ae7bf15c0d.jpg
      │   ├── index.html
      │   ├── js
      │   │   ├── built.6c0be554d8.js
      │   │   └── built.6c0be554d8.js.map
      │   ├── media
      │   │   └── cffec944b5.ttf
      │   ├── service-worker.js       //index.js中要注冊(cè)的service-worker.js文件
      │   ├── service-worker.js.map
      │   ├── workbox-bc1c2339.js
      │   └── workbox-bc1c2339.js.map
      ├── src      //源代碼目錄
      │   ├── css
      │   │   ├── iconfont.css
      │   │   ├── index.css
      │   │   └── index.less
      │   ├── imgs
      │   │   ├── img.jpg
      │   │   ├── img1.jpg
      │   │   ├── img2.jpg
      │   │   └── img3.jpg
      │   ├── index.html
      │   ├── js
      │   │   ├── iconfont.js
      │   │   ├── index.js        //添加:注冊(cè)service-worker.js文件的js代碼
      │   │   └── test.js
      │   └── media
      │       ├── iconfont.json
      │       └── iconfont.ttf
      └── webpack.config.js       //添加 workbox-webpack-plugin插件配置
      
      posted @ 2023-08-28 22:39  影烏  閱讀(154)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 少妇激情一区二区三区视频| 成人自拍短视频午夜福利| 成人精品日韩专区在线观看| 国产亚洲天堂另类综合| 国产无遮挡无码视频在线观看| 国产超碰人人做人人爱ⅴa| 麻豆一区二区三区精品蜜桃| 中文字幕国产精品日韩| 精品国产一区av天美传媒| 国产精品成| 国产真实乱对白精彩久久老熟妇女 | 中文成人无字幕乱码精品区| 99精品久久精品| 中国女人熟毛茸茸A毛片| 久久精品亚洲中文无东京热| 精品精品久久宅男的天堂| 午夜国产精品福利一二| 国产一级av在线播放| 大肉大捧一进一出好爽视频mba| 俺来也俺去啦最新在线| 精品熟女少妇免费久久| 亚洲精品久久久久久久久久吃药| 美女一区二区三区亚洲麻豆| 日韩精品国产二区三区| 久热综合在线亚洲精品| 午夜福利国产精品小视频| 亚洲精品天堂成人片AV在线播放| 亚洲av一本二本三本| 新婚少妇无套内谢国语播放| 可以在线观看的亚洲视频| 色综合AV综合无码综合网站| 亚洲影院丰满少妇中文字幕无码| 亚洲高清国产拍精品熟女| 国产免费高清69式视频在线观看| 午夜激情小视频一区二区| 新宁县| 久久这里有精品国产电影网| 老司机精品影院一区二区三区| 婷婷开心深爱五月天播播| 亚洲av伦理一区二区| а天堂中文最新一区二区三区|