Edit

Migration to vike-photon

Guide to migrate from vike-server to vike-photon.

See also:

1. Update dependencies

npm uninstall vike-server
npm install vike-photon vike@latest
pnpm remove vike-server
pnpm add vike-photon vike@latest
bun remove vike-server
bun add vike-photon vike@latest
yarn remove vike-server
yarn add vike-photon vike@latest

vike-photon requires vike >= 0.4.239

2. Update scripts

// package.json
 
{
  "scripts": {
    "dev": "vike dev",
    "build": "vike build",
    "prod": "NODE_ENV=production node dist/server/index.js"
    "prod": "node ./dist/server/index.mjs"
  }
}

3. Update +config.js

// pages/+config.js
 
import vikeServer from 'vike-server/config'
import vikePhoton from 'vike-photon/config'
 
export default {
  extends: [
    // ...
    vikeServer, 
    vikePhoton 
  ],
  server: 'server/index.js', 
  photon: {
    server: 'server/index.js'
  } 
}
// pages/+config.ts
 
import type { Config } from 'vike/types'
import vikeServer from 'vike-server/config'
import vikePhoton from 'vike-photon/config'
 
export default {
  extends: [
    // ...
    vikeServer, 
    vikePhoton 
  ],
  server: 'server/index.ts', 
  photon: { 
    server: 'server/index.ts'
  } 
} satisfies Config

4. Update server entry

npm install @photonjs/hono
pnpm add @photonjs/hono
bun add @photonjs/hono
yarn add @photonjs/hono
// server/index.js
 
import { Hono } from 'hono'
import { apply } from 'vike-server/hono'
import { serve } from 'vike-server/hono/serve'
import { apply, serve } from '@photonjs/hono'
 
// ...
// server/index.ts
 
import { Hono } from 'hono'
import { apply } from 'vike-server/hono'
import { serve } from 'vike-server/hono/serve'
import { apply, serve } from '@photonjs/hono'
 
// ...

5a. Replace vike-cloudflare

This step is only required if you use vike-cloudflare.

npm uninstall vike-cloudflare
npm install @photonjs/cloudflare
pnpm remove vike-cloudflare
pnpm add @photonjs/cloudflare
bun remove vike-cloudflare
bun add @photonjs/cloudflare
yarn remove vike-cloudflare
yarn add @photonjs/cloudflare
// pages/+config.js
 
import vikeCloudflare from 'vike-cloudflare/config'
 
export default {
  extends: [
    // ...
    vikeCloudflare 
  ]
}
// pages/+config.ts
 
import vikeCloudflare from 'vike-cloudflare/config'
 
export default {
  extends: [
    // ...
    vikeCloudflare 
  ]
}

Photon automatically uses @photonjs/cloudflare if it's listed in your package.json dependencies. No additional steps are required.

See also: Deploy > Cloudflare.

5b. Replace vite-plugin-vercel

This step is only required if you use vite-plugin-vercel.

npm uninstall vite-plugin-vercel
npm install @photonjs/vercel
pnpm remove vite-plugin-vercel
pnpm add @photonjs/vercel
bun remove vite-plugin-vercel
bun add @photonjs/vercel
yarn remove vite-plugin-vercel
yarn add @photonjs/vercel
// vite.config.js
 
import vercel from 'vite-plugin-vercel'
 
export default {
  vercel: {
    // ...
  } 
}
// vite.config.ts
 
import vercel from "vite-plugin-vercel"; 
 
export default {
  vercel: { 
    // ...
  }, 
};

Photon automatically uses @photonjs/vercel if it's listed in your package.json dependencies. No additional steps are required.

See also: Deploy > Vercel.

See also