Edit this page

Migration to vike-photon

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

See also:

1. Update dependencies

npm uninstall vike-server
npm i 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 i @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 i @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 i @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