webpack pwa技术

1. webpack.config.js

const GenerateSW = require('workbox-webpack-plugin');
...
// 插件
module.exports = {
...
    plugins: [
      	...
        new GenerateSW.GenerateSW({
            // 帮助 serviceworker 快速启动
            // 删除旧的 serviceworker
            // 生成一个 serviceworker 配置文件
            clientsClaim: true,
            skipWaiting: true
        })
    ],
    // 模式 development 开发, production 生产自动压缩js代码
    mode: 'production',
    devtool: 'source-map'
}

2. package.json

"eslintConfig": {
    "extends": "airbnb-base",
    "env": {
      "browser": true
    }
  },

3. index.js

/**
 * eslint 不认识 window, navigator 全局变量
 * 解决: 需要修改 package.json中eslintConfig配置
 * "env": {
 *    "browser": true
 * }
 *
 * sw 代码必须运行在服务器上
 * --> nodejs
 * --> npm i serve -g
 *     serve -s build  // 启动服务器,将build目录下所有资源作为静态资源暴露出去
 *
 * */
// 注册 serviceworker
// 处理兼容性问题
if ('serviceWorker' in navigator) {
  window.addEventListener('load', () => {
    navigator.serviceWorker.register('service-worker.js').then(() => {
      console.log('sw注册成功了');
    }).catch(() => {
      console.log('sw注册失败了');
    });
  });
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
创建一个React Progressive Web App (PWA) 项目通常涉及以下几个步骤: 1. **安装必要的工具**: 首先,确保已经全局安装了Node.js和npm,然后通过`create-react-app`命令初始化一个新的React应用: ``` npx create-react-app my-pwa ``` 或者如果你想要更现代的功能,可以考虑使用如`react-scripts-pwa`等PWA增强的脚手架。 2. **设置基本结构**: 进入项目目录并安装所需的PWA相关库,例如`workbox-build`用于服务工人,`react-responsive`处理响应式设计等: ``` cd my-pwa npm install workbox-build react-responsive --save ``` 3. **配置Service Worker**: 在`src`目录下创建一个`serviceWorker.js`文件,编写服务工人的注册和更新逻辑。这将允许离线访问和推送通知功能。 4. **添加 manifest.json**: 创建一个`manifest.json`文件,描述应用程序的基本信息,如名称、图标、主题色以及重要元数据。 5. **启用路由模式**: 使用像`react-router-dom`这样的库来管理客户端路由,并确保在浏览器标签页上显示PWA图标。 6. **SEO优化**: 确保应用对搜索引擎友好,使用`next-seo`或类似库提供正确的头部元标签。 7. **安装其他PWA特性**: 可能还需要安装其他库,如`sw-precache-webpack-plugin`来生成静态资源的预缓存,或者`offline-plugin`提供更好的离线体验。 8. **测试**: 使用`lighthouse`等工具检查PWA的质量指标,确保所有最佳实践都已满足。 9. **部署**: 将应用程序部署到支持PWA的服务器,如HTTPS,以便Google等搜索引擎可以发现它是PWA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值