# Options Reference
# transformAssetUrls
type:
{ [tag: string]: string | Array<string> }
default:
{ video: ['src', 'poster'], source: 'src', img: 'src', image: ['xlink:href', 'href'], use: ['xlink:href', 'href'] }
During template compilation, the compiler can transform certain attributes, such as
src
URLs, intorequire
calls, so that the target asset can be handled by webpack. For example,<img src="./foo.png">
will attempt to locate the file./foo.png
on your file system and include it as a dependency of your bundle.
# compiler
Type:
KduTemplateCompiler
default:
require('kdu-template-compiler')
Override the default compiler used to compile
<template>
blocks in single file components.
# compilerOptions
type:
Object
default:
{}
Options for the template compiler. When using the default
kdu-template-compiler
, you can use this option to add custom compiler directives, modules, or discard whitespaces between template tags with{ preserveWhitespace: false }
.
# transpileOptions
type:
Object
default:
{}
Configure ES2015+ to ES5 transpiling options for the generated render function code. The transpiler (opens new window) is a fork of Buble (opens new window), so consult the available options here (opens new window).
The template render functions compilation supports a special transform
stripWith
(enabled by default), which removes thewith
usage in generated render functions to make them strict-mode compliant.
# optimizeSSR
type:
boolean
default:
true
when the webpack config hastarget: 'node'
andkdu-template-compiler
is at version 2.4.0 or above.Enable Kdu 2.4 SSR compilation optimization that compiles part of the kdom trees returned by render functions into plain strings, which improves SSR performance. In some cases you might want to explicitly turn it off because the resulting render functions can only be used for SSR and cannot be used for client-side rendering or testing.
# hotReload
type:
boolean
default:
true
in development mode,false
in production mode or when the webpack config hastarget: 'node'
.allowed value:
false
(true
will not force Hot Reload neither in production mode nor whentarget: 'node'
)Whether to use webpack Hot Module Replacement (opens new window) to apply changes in the browser without reloading the page. Use this option (value
false
) to disable the Hot Reload feature in development mode.
# productionMode
- type:
boolean
- default:
process.env.NODE_ENV === 'production'
Force production mode, which prohibits the loader from emitting code (e.g. hot-reload related code) that is development-only.
# shadowMode
- type:
boolean
- default:
false
Compiled the component for usage inside Shadow DOM. In this mode, the styles of the component will be injected into this.$root.$options.shadowRoot
instead of the document head.
# cacheDirectory / cacheIdentifier
- type:
string
- default:
undefined
When both options are specified, enables file-system-based template compilation caching (requires cache-loader
to be installed in the same project).
TIP
Interaction between kdu-loader
and cache-loader
uses inline loader import syntax (opens new window) under the hook, the !
will be treated as the separator between different loaders, so please ensure cacheDirectory
doesn't contain !
.
# prettify
- type:
boolean
- default:
true
In development mode, we use prettier (opens new window) to format the compiled render function for ease of debugging by default. However, if you encounter any obscure bug of prettier, such as exponential compilation time for deeply nested functions (opens new window), you can disable this option to circumvent it.
# exposeFilename
- type:
boolean
- default:
false
In non-production environments, kdu-loader injects a __file
property to components for better debugging experience. If the name
property is missing in a component, Kdu will infer it from the __file
field to display in console warnings.
This property is stripped in production builds by default. But you may want to retain it if you are developing a component library and don't want to bother specifying name
in each component. Then you can turn this option on.