Skip to main content

Troubleshooting

@quik/config is not a bootstrap module — it is never registered, so "module not initialized" style issues do not apply to it. Configuration-loading problems belong to @quik/core's getConfig()/initConfig().

getConfig().init(...) throws TypeError: Invalid configuration value at ...

A config file (or a value passed to getConfig().load(...)/set(...)) contains something that isn't JSON-compatible — a function, class instance, Map/Set, or symbol. Only strings, numbers, booleans, null, plain objects, and arrays of those are accepted.

A config file isn't picked up

getConfig().init(configFolder) skips any file whose basename contains index, and only reads files with extensions "", .json, .ts, or .js. Confirm the file lives directly in configFolder and is named after the config key you expect (e.g. app.ts for the app namespace).

A value I set earlier got overwritten

load/init deep-merge each new source on top of the existing config — the most recently loaded value wins for any given key. If a later getConfig().load(...) (from another module's entrypoint import, or a later config file) sets the same key, it takes precedence.

licenses:generate / app:build scripts fail

These come from @quik/config's build tooling (generate-third-party-licenses.mjs, esbuild.mjs, build.mjs), not from application configuration. Check the specific package's build output for the failing script rather than getConfig().

Common Errors

@quik/config has no locale file and defines no quik.errors.* keys of its own — it is a private build-tooling package with no runtime error handling. Configuration-related runtime errors belong to @quik/core (getConfig, TypeError on invalid values) or to the module that owns the config key you are working with.