nuxt-vite-legacy
TypeScript icon, indicating that this package has built-in type declarations

1.2.0 • Public • Published

nuxt-vite-legacy

Nuxt module to make your Nuxt3 app compatible with legacy browsers.

Uses @vitejs/plugin-legacy and applies a number of hacks that Nuxt.js team decided to avoid.

Tested on Nuxt 3.4 to 3.8.

Quick Setup

Install:

npm install nuxt-vite-legacy --save-dev

Add nuxt-vite-legacy to the modules section of nuxt.config.ts:

export default defineNuxtConfig({
  modules: ["nuxt-vite-legacy"],
  // Optionally, provide @vitejs/plugin-legacy options.
  // For example, for Chrome 49 you could use:
  legacy: {
    targets: ["chrome 49"],
    additionalLegacyPolyfills: [
      "mdn-polyfills/Element.prototype.getAttributeNames",
    ],
  },
})

Caveats

The legacy build will be used for browsers that don't support <script module> which is enough most of the time.

However, this leaves incompatibility window for legacy browsers that do support modules but don't support modern features such as async generators (based on caniuse that would be e.g. Chrome 61-62). Vanilla @vitejs/plugin-legacy injects special detection scripts into SSR HTML, which this Nuxt module doesn't. PR's welcome!

Development and Testing

npm i -g pnpm
pnpm i
pnpm dev:prepare
pnpm dev:build && pnpm dev:start

http://localhost:3000 will run a Chrome 49-compatible version.

Readme

Keywords

none

Package Sidebar

Install

npm i nuxt-vite-legacy

Weekly Downloads

325

Version

1.2.0

License

MIT

Unpacked Size

6.7 kB

Total Files

12

Last publish

Collaborators

  • ilyasemenov