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/[email protected]
npm ERR! Found: [email protected]
npm ERR! node_modules/vite
npm ERR!   peer vite@"^3.0.0" from @vitejs/[email protected]
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 [email protected]
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/[email protected]  --legacy-peer-deps

猜你喜欢

转载自blog.csdn.net/weixin_53457368/article/details/131184944