vite引入@vitejs/plugin-legacy解决在低版本安卓浏览器白屏问题

使用ES6语法可能在某些低版本安卓浏览器打开项目时白屏。

解决方案:引入@vitejs/plugin-legacy

npm add -D @vitejs/plugin-legacy  --legacy-peer-deps

在vite.config.js配置文件中引入:
import legacy from '@vitejs/plugin-legacy'

配置:

plugins: [react(), eslintPlugin(), svgr({ exportAsDefault: true }),
    legacy({
      targets: ['defaults', 'ie >= 11', 'chrome 52'],  //需要兼容的目标列表,可以设置多个
      additionalLegacyPolyfills: ['regenerator-runtime/runtime'],
      renderLegacyChunks:true,
      polyfills:[
        'es.symbol',
        'es.array.filter',
        'es.promise',
        'es.promise.finally',
        'es/map',
        'es/set',
        'es.array.for-each',
        'es.object.define-properties',
        'es.object.define-property',
        'es.object.get-own-property-descriptor',
        'es.object.get-own-property-descriptors',
        'es.object.keys',
        'es.object.to-string',
        'web.dom-collections.for-each',
        'esnext.global-this',
        'esnext.string.match-all'
      ]
    })]

项目打包时出现这种情况:

 直接下载依赖即可:

npm i terser  --legacy--peer-deps

下载terser依赖失败,报错:

npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving: @vitejs/plugin-legacy@4.0.4
npm ERR! Found: vite@3.0.0
npm ERR! node_modules/vite
npm ERR!   peer vite@"^3.0.0" from @vitejs/plugin-react@2.2.0
npm ERR!   node_modules/@vitejs/plugin-react
npm ERR!     dev @vitejs/plugin-react@"^2.0.0" from the root project
npm ERR!   peer vite@">=2" from vite-plugin-eslint@1.7.0
npm ERR!   node_modules/vite-plugin-eslint
npm ERR!     dev vite-plugin-eslint@"1.7.0" from the root project
npm ERR!   2 more (vite-plugin-svgr, the root project)
npm ERR!
npm ERR! Could not resolve dependency:

可以考虑降低版本,如

npm add -D @vitejs/plugin-legacy@2.0.0  --legacy-peer-deps

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值