使用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:
可以考虑降低版本,如文章来源:https://www.toymoban.com/news/detail-629273.html
npm add -D @vitejs/plugin-legacy@2.0.0 --legacy-peer-deps文章来源地址https://www.toymoban.com/news/detail-629273.html
到了这里,关于vite引入@vitejs/plugin-legacy解决在低版本安卓浏览器白屏问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!