您的位置:首页 > 游戏 > 手游 > Vite - 兼容旧版浏览器 plugin-legacy(1)

Vite - 兼容旧版浏览器 plugin-legacy(1)

2024/12/23 15:37:02 来源:https://blog.csdn.net/qq_40147756/article/details/139416630  浏览:    关键词:Vite - 兼容旧版浏览器 plugin-legacy(1)

目录

  • 1,原理
  • 2,Vite 的配置
    • 配置项 targets
  • 3,原理

1,原理

当使用了新的 js 特性时,为了兼容一些传统浏览器,通常会使用 babel 做降级处理。

比如通过 vue-cli 创建的项目中,会配置 babel 插件来解决:

// babel.config.js
module.exports = {presets: ['@vue/cli-plugin-babel/preset', '@babel/preset-env'],plugins: ['@babel/plugin-transform-runtime']
}

而 babel 做降级处理的依据,是通过 browserslist 查询出需要支持的浏览器列表。

所以还需要在 .browserslistrc 配置文件,或是 package.json 中的 browserslist 字段中增加相关配置:

"browserslist": ["> 1%","last 2 versions","not dead","not ie 11","ios >= 9"
],

2,Vite 的配置

plugin-legacy 官方文档

在 vite 中,通过插件将 babel 进行集成。

// vite.config.ts
import { defineConfig } from 'vite'
import legacy from '@vitejs/plugin-legacy'export default defineConfig({plugins: [legacy()]
})

这样打包后的 js 中,会多一份做了降级处理的(legacy)js。

在这里插入图片描述

配置项 targets

legacy() 可以传递配置项,一般使用默认的就够了。

配置项 targets 的默认值是 'last 2 versions and not dead, > 0.3%, Firefox ESR'

该配置项,
如果显式指定了,则会在渲染打包后的降级处理的 js 时,传递给 babel 的 presets:@babel/preset-env
如果使用的是默认值,则将默认值传递给 .browserslistrc 配置文件。

举例:

legacy({targets: ['defaults', 'not IE 11']
})

3,原理

参考文章


以上。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com