zoukankan      html  css  js  c++  java
  • webpack 之(20) 优化配置 之 PWA

    PWA:渐进式网络开发应用程序(离线可访问)

      workbox  ---> workbox-webpack-plugin

    操作步骤

    第一步:

    npm i workbox-webpack-plugin

    第二步:在webpack.config.js中使用

    const WorkboxWebpackPlugin = require('workbox-webpack-plugin')
    
    module.exports = {
      plugins:[
    
         new WorkboxWebpackPlugin.GenerateSW({
           //1.帮助serviceworker快速启动
           //2.删除旧的serviceworker
           
           //生成一个 serviceworker 配置文件
            clientsClaim:true,
            skipWaiting:true
         })
      ]
    
    }    

    第三步: 在index.js(入口文件)

    分析:判断'serviceworker' 是否在navigator全局变量中,当load全局加载完之后,就去注册构建好的'service-worker.js'

    //注册serviceWorker
    
    //处理兼容性问题
    if('serviceWorker' in navigator)
    {
      window.addEventListener('load',() => {
          navigator.serviceWorker.register('/service-worker.js')
            .then(()=>{
                console.log('sw注册成功了~')
             }).catch(()=>{
                console.log('sw注册失败了')
             })
      })
    }

    第四步: 会有一点小问题

    分析:

    1/但是eslint 不认识 window, navigator全局变量

     解决:需要修改package.json中eslintConfig配置

    "env":{
      "browser":true  //支持浏览器全局变量
    }

    2/ sw代码必须运行在服务器上

        --> nodejs

        -->npm i serve -g

       server -s build 启动服务器,将build目录下所有资源作为静态资源暴露出去

  • 相关阅读:
    HDU 1261 字串数(排列组合)
    Codeforces 488C Fight the Monster
    HDU 1237 简单计算器
    POJ 2240 Arbitrage
    POJ 3660 Cow Contest
    POJ 1052 MPI Maelstrom
    POJ 3259 Wormholes
    POJ 3268 Silver Cow Party
    Codesforces 485D Maximum Value
    POJ 2253 Frogger(最短路)
  • 原文地址:https://www.cnblogs.com/zmztya/p/14716022.html
Copyright © 2011-2022 走看看