@teages/nuxt-legacy
一个用于支持旧版浏览器的 Nuxt 模块。
设置
通过一个命令将模块安装到您的 Nuxt 应用中
# vite
pnpm add @teages/nuxt-legacy @vitejs/plugin-legacy
然后在你的 nuxt.config.ts
中配置它
// nuxt.config.ts
export default defineNuxtConfig({
modules: [
'@teages/nuxt-legacy'
],
legacy: {
vite: {}, // `@vitejs/plugin-legacy` options
},
})
最大兼容性(不推荐)
// nuxt.config.ts
export default defineNuxtConfig({
modules: [
'@teages/nuxt-legacy'
],
legacy: {
vite: {
targets: ['fully supports proxy'],
modernPolyfills: true,
},
},
})
兼容性
Nuxt & @vitejs/plugin-legacy
该模块兼容 Nuxt ^3.18.0 || >=4.0.3
和 @vitejs/plugin-legacy ^7.0.0
此版本。
由于该模块不依赖任何隐式行为,因此它应该适用于任何更高版本的 Nuxt。但我会在 Nuxt 发布次要或主要版本后重新检查兼容性。
检查当前模块版本的结果
Nuxt 版本 | @vitejs/plugin-legacy | Chrome 49 | Chrome 61 | Chrome 91 |
---|---|---|---|---|
3.18.0 | 7.0.0 | ✅ 通过 | ✅ 通过 | ✅ 通过 |
4.0.3 | 7.0.0 | ✅ 通过 | ✅ 通过 | ✅ 通过 |
浏览器支持
该模块已在以下浏览器中进行测试
- Chrome 49:Vue 3 的最低要求版本
- Chrome 61:支持 ESM 但不支持广泛可用的功能
- Chrome 91:不支持
Object.hasOwn
但可以通过 polyfill 填充 - 最新版 Chrome
你可以通过使用你的目标浏览器访问游乐场进行自我测试。
内容安全策略
它注入了一些内联脚本以修复旧版浏览器兼容性。哈希值与最新版本的 @vitejs/plugin-legacy
保持同步,当前值为
sha256-MS6/3FCg4WjP9gwgaBGwLpRCY6fZBgwmhVCdrPrNf3E=
sha256-tQjf8gvb2ROOMapIxFvFAYBeUJ0v1HCbOcSmDNXGtDo=
sha256-ZxAi3a7m9Mzbc+Z1LGuCCK5Xee6reDkEPRas66H9KSo=
sha256-+5XkZFazzJo8n0iOP4ti/cLCMUudTf//Mzkb7xNPXIc=
cspHashes
也可在模块中使用
import { cspHashes } from '@teages/nuxt-legacy'
鸣谢
- IlyaSemenov/nuxt-vite-legacy:@IlyaSemenov 的模块,带有他的想法
- BrowserStack。此项目通过 BrowserStack 进行测试。
贡献
本地开发
# Install dependencies
npm install
# Generate type stubs
npm run dev:prepare
# Develop with the playground
npm run dev
# Build the playground
npm run dev:build
# Run ESLint
npm run lint
# Run Vitest
npm run test
npm run test:watch
# Release new version
npm run release