vite-ember-ssr
raw JSON → 0.1.0-alpha.13 verified Mon Apr 27 auth: no javascript deprecated
A Vite plugin and SSR/SSG runtime for Ember.js applications using HappyDOM instead of FastBoot. Current version is 0.1.0-alpha.13 (pre-release). Released as experimental alpha with frequent breaking changes. Key differentiators: no FastBoot, no VM sandbox, supports both SSR and SSG modes (including combined), uses HappyDOM for browser environment, requires compatless Embroider setup. Node 22+ and Vite 6+ required.
Common errors
error ERR_REQUIRE_ESM: require() of ES Module /path/to/vite-ember-ssr/vite-plugin.mjs from /path/to/vite.config.js not supported. ↓
cause Using require() to load an ESM-only package.
fix
Use import syntax in vite.config.mjs or set type:module in package.json.
error Cannot find module 'vite-ember-ssr/vite-plugin' or its corresponding type declarations. ↓
cause Importing from wrong path or package not installed.
fix
Install vite-ember-ssr as devDependency and import from 'vite-ember-ssr/vite-plugin'.
error Error: The current Ember application uses @embroider/compat which is not supported by vite-ember-ssr. ↓
cause Using classic Ember compat mode.
fix
Remove @embroider/compat and ember-cli-build.js. Ensure app is compatless.
error TypeError: config.environment is not a function or module not found. ↓
cause config/environment must be a direct ES module import, not using @embroider/config-meta-loader.
fix
Replace import config from './config/environment' and ensure it's a standard module export.
Warnings
breaking Requires Node 22+ and Vite 6+. Older versions of Node or Vite will not work. ↓
fix Upgrade Node to 22+ and Vite to ^6.0.0 || ^7.0.0.
breaking Import paths changed: plugin exports from 'vite-ember-ssr/vite-plugin', server from 'vite-ember-ssr/server'. Root import is not available. ↓
fix Use import { emberSsr } from 'vite-ember-ssr/vite-plugin' and import { render } from 'vite-ember-ssr/server'.
deprecated All versions are alpha/pre-release. APIs may break without notice. Not suitable for production. ↓
fix Wait for stable release or pin exact version. Monitor changelog.
gotcha The package is experimental. No semantic versioning during alpha. Breaking changes in minor/patch bumps are expected. ↓
fix Pin to exact version in package.json. Do not use ranges.
gotcha Must use compatless Embroider mode. Classic Ember or @embroider/compat setups are not supported. ↓
fix Migrate Ember app to compatless mode (remove ember-cli-build.js, classicEmberSupport, etc.).
Install
npm install vite-ember-ssr yarn add vite-ember-ssr pnpm add vite-ember-ssr Imports
- emberSsr wrong
const emberSsr = require('vite-ember-ssr/vite-plugin')correctimport { emberSsr } from 'vite-ember-ssr/vite-plugin' - emberSsg wrong
import emberSsg from 'vite-ember-ssr'correctimport { emberSsg } from 'vite-ember-ssr/vite-plugin' - render wrong
import { render } from 'vite-ember-ssr'correctimport { render } from 'vite-ember-ssr/server'
Quickstart
// vite.config.mjs
import { defineConfig } from 'vite';
import { extensions, ember } from '@embroider/vite';
import { babel } from '@rollup/plugin-babel';
import { emberSsr } from 'vite-ember-ssr/vite-plugin';
export default defineConfig({
plugins: [
ember(),
babel({ babelHelpers: 'runtime', extensions }),
emberSsr(),
],
});