webpack打包后ie访问出现“btoa“未定义

在使用webpack5重构配置并需要兼容IE9时,遇到"btoa"未定义的错误。经过排查,问题并非出在babel对ES6或typescript的兼容,也不是sourcemap配置。最终发现在生产环境下,由于MiniCssExtractPlugin的loader配置问题导致。修复了三目运算符的括号问题后,解决了该错误。此事强调了良好代码习惯的重要性。
摘要由CSDN通过智能技术生成

问题描述

最近在用最新webpack5重新写配置文件时发现,在js在js中引入scss文件,打包后在chrome浏览器是并没有问题,但由于项目兼容到ie9,在ie9做测试时发现报错"btoa"未定义。mdn上查询到btoa是在ie10以上才有效。

思考解决过程

在webpack配置里已经使用对ES6的语法进行babel兼容到ie9,一开始认为是babel对typescript的语法兼容配置问题,但经过对ts文件的排查发现问题并不在babel上,看了打包的源码也发现是对css的sourcemap指向,那么就是说这些不是在于自己写的代码身上的兼容问题。于是认为是sourcemap的问题,在所有的生产模式下可以设置sourcemap的都设为false,且将devtool也设置为nosourcemap,但问题依然存在。最后终于将问题锁定在对于css的loader身上。

解决方法

对了css的编译loader进行一个个排查。我在开发环境使用的是style-loader,生产环境用了MiniCssExtractPlugin进行css分离,用了sass,配置如下:

{
   
                test: /\.(c|sc)ss$/,
                include: [
                    resolve("src"),
                ],</
当使用vue webpack打包发布到线上后,有时在微信公众号H5部分打开会出现白屏的情况。这个问题可能有多个原因。其中一个可能的原因是缓存问题。微信浏览器内的单页应用有时会出现缓存问题,导致页面加载不正确。为了解决这个问题,可以尝试以下过渡方案和解决方案。 过渡方案可以是配置nginx服务器,通过配置nginx服务器来解决缓存问题。这样可以确保每次访问页面时都是最新的版本。 解决方案可以是在前端打包时保留两个版本。这样可以避免缓存问题,当用户访问页面时,可以强制加载最新的版本。具体的方案可以参考相关的文章。 另外,为了提高性能,还可以采取一些优化措施,如减小打包后的文件大小、按需引入文件、优化webpack打包时间等。其中,按需加载可以通过路由组件按需加载来实现,这样只有在需要的时候才加载相应的组件,可以有效减小页面加载的文件大小和时间。 总结起来,解决webpack打包后白屏的问题可以尝试以下步骤: 1. 配置nginx服务器来解决缓存问题。 2. 在前端打包时保留两个版本,以确保每次访问页面时都是最新的版本。 3. 采取优化措施,如减小打包后的文件大小、按需引入文件、优化webpack打包时间等。 希望这些信息能帮助到您。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [vue+webpack打包发布到线上后微信公众号H5部分打开白屏,刷新又好了](https://blog.csdn.net/u010259906/article/details/120784048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [webpack打包优化的几个方法总结](https://download.csdn.net/download/weixin_38581405/13132225)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值