rolldown-license-plugin
v3.0.9
Published
Rolldown plugin to extract dependency licenses
Downloads
9,708
Maintainers
Readme
rolldown-license-plugin
Rolldown plugin to extract dependency licenses and optionally validate them. Zero dependencies, optimized for performance.
Usage
import {defineConfig} from "rolldown";
import {licensePlugin} from "rolldown-license-plugin";
export default defineConfig({
plugins: [
licensePlugin({
done(deps, context) {
context.emitFile({
type: "asset",
fileName: "licenses.txt",
source: deps.map(({name, version, license, licenseText}) => {
return `${name}@${version} - ${license}\n${licenseText}`;
}).join("\n\n"),
});
},
}),
],
});This also works with Vite, using defineConfig from vite.
API
licensePlugin(opts)
Returns the plugin.
opts.done
Type: (licenses: LicenseInfo[], context: PluginContext) => void | Promise<void>
Callback invoked during generateBundle with the collected license data. The context parameter provides access to rolldown's plugin context, including emitFile.
opts.match
Type: RegExp
Default: /^((UN)?LICEN(S|C)E|COPYING).*$/i
Regex to match license filenames in package directories.
opts.wrapLicenseText
Type: number
Default: undefined (no wrapping)
When set, word-wrap licenseText to this column width.
opts.allow
Type: (license: LicenseInfo) => boolean
Default: undefined (no validation)
Validate each dependency's license. Return false to reject it. By default, rejected dependencies are reported via the rolldown plugin context's warn. Use failOnViolation and failOnUnlicensed to throw build errors instead.
opts.failOnViolation
Type: boolean
Default: false
Throw a build error when a dependency has an incompatible license.
opts.failOnUnlicensed
Type: boolean
Default: false
Throw a build error when a dependency does not specify any license.
LicenseInfo
type LicenseInfo = {
name: string; // package name
version: string; // package version, or ""
license: string; // SPDX license identifier from package.json, or ""
licenseText: string; // contents of LICENSE/COPYING file, or ""
};wrap(text, width)
Function to word-wrap text to a certain column width. Returns the wrapped string.
License
© silverwind, distributed under BSD-2-Clause.
