interface AppOptions {
    assetFileNames?: ((chunkInfo) => string);
    config?: UserConfigExport;
    coreJS?: CoreJSPluginOptions;
    emptyOutputDirectory?: boolean;
    inlineCSS?: boolean | PluginConfiguration;
    minify?: boolean;
    nodePolyfills?: boolean | PolyfillOptions;
    replace?: Record<string, string>;
    thirdPartyLicense?: string | false;
}

Hierarchy

Properties

assetFileNames?: ((chunkInfo) => string)

Customize the asset file names. Similar to output.assetFileNames in rollup config, but if returns undefined, then this config defaults is be used.

Type declaration

    • (chunkInfo): string
    • Parameters

      • chunkInfo: PreRenderedAsset

      Returns string

Example

Move CSS styles to `styles/style.css` instead of the default `css/[entrypoint-name].css`:
(chunkInfo) => chunkInfo.name.endsWith('.css') ? 'styles/style.css' : undefined
config?: UserConfigExport

Vite config to override or extend the base config

coreJS?: CoreJSPluginOptions

Enable and adjust settings for core-js polyfills

By default disabled as Nextcloud core already includes the core-js/stable polyfills globally

emptyOutputDirectory?: boolean

Whether to empty the output directory (js/)

Default

true
inlineCSS?: boolean | PluginConfiguration

Inject all styles inside the javascript bundle instead of emitting a .css file

Default

false
minify?: boolean

Whether to minify the output

Default

isProduction Minify on production, do not on development
nodePolyfills?: boolean | PolyfillOptions

Inject polyfills for node packages By default all node core modules are polyfilled, including prefixed with node: protocol

Default

{protocolImports: true}
replace?: Record<string, string>

Strings to replace within your code

thirdPartyLicense?: string | false

Location of license summary file of third party dependencies Pass false to disable generating a license file.

Default

'js/vendor.LICENSE.txt'