Skip to content

Config ​

kirbyup.config.js in the project root configures both build and dev. The file is loaded with c12, so .ts, .mjs and .js all work. Neither .kirbyuprc nor a package.json key is read.

js
// kirbyup.config.js
import { defineConfig } from 'kirbyup/config'

export default defineConfig({
  alias: {},
  vite: {},
})

defineConfig(config) ​

Returns config unchanged. It exists for type hints and autocompletion.

alias ​

Extra import aliases, merged after the built-in ~/ and @/. An object maps a prefix to a replacement, an array of { find, replacement } entries allows regular expressions. Entries apply in order, the first match wins.

Absolute paths resolve on the file system. Relative values are passed through as written, which is rarely what you want.

vite ​

Merged into kirbyup's own config with Vite's mergeConfig. Arrays such as plugins are appended, everything else overrides.

kirbyup sets these options. Overriding the ones marked as fixed breaks the output.

Optionkirbyup defaultNotes
resolve.alias~/ and @/ to the entry file's folderExtend via alias
pluginsVue, Vue JSX, auto-importsYours are appended. Vue and Vue JSX treat the Panel's k-validator and k-input-validator as custom elements.
envPrefix['VITE_', 'KIRBYUP_']See Env Variables
build.libES module from the entry fileFixed
build.rolldownOptions.external['vue']Fixed, vue comes from the Panel
build.rolldownOptions.output.codeSplittingfalseFixed, Kirby serves no script beside index.js or index.dev.js
build.minifytrue for production, false for watch buildsWith Vite's own minifier, kirbyup also sets build.rolldownOptions.output.minify, which Vite's library mode leaves without whitespace removal. Set it yourself to override. 'esbuild' keeps the whitespace.
build.targetThe browsers the Kirby Panel supportsYours replaces it
server.port--port, default 5177Config wins over the flag
server.originDerived from server.host, server.https and the portThe URL written into index.dev.js
server.strictPorttrueFails instead of picking another port
server.corstrueThe Panel runs on another origin

Set server.origin when the Panel cannot reach the dev server under the derived URL, for example on another host or behind a proxy.