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.