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’

      ]

    })]

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

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

 直接下载依赖即可:

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

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/c8f3a997b2.html