Webpack系列——PWA的打包配置

安装 http-server:

npm install http-server -D

使用 http-server可以模拟实现服务器效果

package.json中配置命令,在 dist 目录下开启一个 http-server

{
    ...
    "scripts": {
        "start": "http-server dist"
        ...
    }
}

PWA(Progressive Web Application),当客户端第一次成功访问成功网页后,服务器出错挂掉,客户端再次访问是将会显示错误,PWA可以实现第一次访问成功后,即使服务器挂掉,第二次访问的时候,本地有一份缓存,使用缓存展示之前访问的页面,这样即便服务器挂掉,客户端还是可以看到之前访问到的页面。

npm install workbox-webpack-plugin -D

只有线上代码需要做PWA的项目处理

webpack.prod.config.js

const WorkboxPlugin = require('workbox-webpack-plugin');
...
​
module.exports = {
    ...
    plugins: {
        new WorkboxPlugin.GenerateSW({
            clientsClaim: true,
            skipWaiting: true
        })
    }
    ...
}

index.js

// index.js 入口文件
console.log('PWA 简单使用')
​
if ('serviceWorker' in navigator) { // 如果浏览器支持 serviceworker
    window.addEventListener('load', () => {
        // service-worker.js 打包生成的用于PWA的文件,可在 dist 目录查看
        navigator.serviceWorker.register('/service-worker.js')
            .then(registration => { // 注册成功返回参数
                console.log('service-worker registed')
            }).catch(error => {
                console.log('service-worker register error')
        })
    })
}

对代码打包后,启动模拟的http-server,访问页面,关闭服务器,再次刷一下页面查看效果

以上就是简单实现PWA效果的操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要让 Webpack 打包更快,可以尝试以下几个方面的配置: 1. 使用多线程打包插件:可以使用 thread-loader 或者 HappyPack 这类插件,让 Webpack 在多线程的情况下进行打包,从而提高打包速度。 2. 使用缓存:可以使用 cache-loader 或者 hard-source-webpack-plugin 这类插件,将打包过程中的中间结果进行缓存,下次打包时可以直接使用缓存,从而减少打包时间。 3. 按需加载:可以使用动态导入的方式,将不常用的代码按需加载,从而减少初始加载时间。 4. 优化代码:可以使用 tree shaking、code splitting、webpack-bundle-analyzer 等技术,来优化代码的打包结果,从而减少打包时间和文件大小。 除了以上几个方面的配置,还可以适当增加硬件资源,比如 CPU 核数、内存等,来提高打包速度。另外,可以注意以下几点: 1. 将 loader 应用于最少的文件:尽量避免将 loader 应用于所有文件,而是只将其应用于需要它的文件。 2. 减少查找范围:可以使用 resolve.modules、resolve.extensions 等配置项,来减少 Webpack 查找文件的范围。 3. 指定 context:可以使用 context 配置项,来指定 Webpack 的上下文路径,从而减少查找范围。 4. 使用 DllPlugin:可以使用 DllPlugin 和 DllReferencePlugin 这两个插件,将一些不太变化的代码提前打包成静态库,从而减少打包时间。 总之,要让 Webpack 打包更快,需要从多个方面进行优化,综合考虑各种因素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值