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

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

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

      webpack生產環境優化:PWA

      轉載請注明 來源:http://www.eword.name/
      Author:eword
      Email:eword@eword.name

      webpack生產環境優化:PWA

      PWA可簡稱為“離線可訪問技術”。

      一、下載插件

      PWA: 漸進式網絡開發應用程序(離線可訪問) ,需要插件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: [
              // 詳細的plugins配置
      
              ……
      
              // 離線可訪問技術PWA
              new WorkboxWebpackPlugin.GenerateSW({
              /* 
                  1.豬助serviceworker快速啟動
                  2.時除舊的 serviceworker
                  
                  生成一個 serviceworker 配罝文件~
              */
                  clientsClaim: true,
                  skipWaiting: true
              })
              
          ],
          
              ……
              
      }
      

      核心配置

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

      2.2、package.json配置

      eslint不認識 window. navigator全局變最
      解決:需要修改package.json中eslintConfig配罝

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

      2.3、js入口文件注冊serviceWorker

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

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

      三、測試PWA

      3.1、下載服務器支持庫

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

      > npm i -g serve@11.3.0
      

      3.2、運行服務器

      # 先打包構建生成service-worker.js文件
      > npx webpack
      
      # 啟動服務器,將build目錄下所有資源作為靜態資源暴露出去
      > 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服務器地址:http://localhost:54551

      四、工程文件目錄

      .
      ├── build     //構建打包生成的目錄
      │   ├── css
      │   │   └── 42c0dc2a54.css
      │   ├── imgs
      │   │   └── ae7bf15c0d.jpg
      │   ├── index.html
      │   ├── js
      │   │   ├── built.6c0be554d8.js
      │   │   └── built.6c0be554d8.js.map
      │   ├── media
      │   │   └── cffec944b5.ttf
      │   ├── service-worker.js       //index.js中要注冊的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        //添加:注冊service-worker.js文件的js代碼
      │   │   └── test.js
      │   └── media
      │       ├── iconfont.json
      │       └── iconfont.ttf
      └── webpack.config.js       //添加 workbox-webpack-plugin插件配置
      
      posted @ 2023-08-28 22:21  Eword  閱讀(291)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 人妻少妇一区二区三区| 亚洲免费福利在线视频| 狠狠躁夜夜躁人人爽蜜桃| 成人av专区精品无码国产| 最近中文字幕日韩有码| 色狠狠综合天天综合综合| 国产一区韩国主播| 国产日韩av二区三区| 亚洲老熟女乱女一区二区| 成在人线av无码免费高潮水老板| 亚洲精品无码成人A片九色播放 | 日本一区二区不卡精品| 久久综合激情网| 国产精品日韩中文字幕熟女| 四虎永久精品免费视频| 亚洲高清WWW色好看美女| 狠狠躁夜夜躁人人爽蜜桃| 久久中文字幕av第二页| 亚洲偷自拍国综合| 乱人伦中文视频在线| 亚洲自拍偷拍福利小视频| 亚洲av日韩av一区久久| 成人免费av色资源日日| 久久亚洲精品无码播放| 熟妇人妻无码中文字幕老熟妇 | 久久精品熟女亚洲av艳妇| 亚洲另类无码一区二区三区| 日韩精品一区二区蜜臀av| 亚洲熟妇国产熟妇肥婆| 亚洲一区二区三区激情在线| 国产四虎永久免费观看| 成人做受视频试看60秒| 九九热精品在线视频观看| 成人精品一区日本无码网| 亚洲综合91社区精品福利| 兴文县| 深夜宅男福利免费在线观看| 亚洲av永久无码精品天堂久久| 国产在线午夜不卡精品影院| 国产成人黄色自拍小视频| 99riav精品免费视频观看|