Interface LibraryOptions

interface LibraryOptions {
    DTSPluginOptions?: false | PluginOptions;
    assetFileNames?: ((chunkInfo) => string);
    config?: UserConfigExport;
    coreJS?: CoreJSPluginOptions;
    inlineCSS?: boolean;
    libraryFormats?: LibraryFormats[];
    minify?: boolean;
    nodeExternalsOptions?: ExternalsOptions;
    nodePolyfills?: boolean | PolyfillOptions;
    replace?: Record<string, string>;
    thirdPartyLicense?: string | false;
}

Hierarchy (view full)

Properties

DTSPluginOptions?: false | PluginOptions

Options for the Vite DTS plugin

This plugin allows to create .d.ts files for your library including the .vue files Pass false to disable the plugin

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

inlineCSS?: boolean

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

Default

false
libraryFormats?: LibraryFormats[]

Formats you like your library to be built

Default

['es']
minify?: boolean

Whether to minify the output

Default

false For libraries the code is not minified by default for better DX. Usually it is not needed: a library will be minified as a part of an app bundling.
nodeExternalsOptions?: ExternalsOptions

Options for the rollup node externals plugin

By default all dependencies and peerDependencies are marked as external. And node builtins prefix (node:) is stripped to make the library compatible with webpack and node-polyfill-webpack-plugin.

Note: If you use dependencies @nextcloud/vue/dist/Components/NcButton.js and what them to be externalized too, you need to set an include pattern: { include: [ /^@nextcloud/vue/ ]}

nodePolyfills?: boolean | PolyfillOptions

Inject polyfills for node packages

Default

false Disabled to reduce buildtime
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

'dist/vendor.LICENSE.txt'