2.1.2 • Published 8 months ago
@ayan4m1/rollup-plugin-multi-input v2.1.2
rollup-plugin-multi-input
:warning: Do you really need rollup-plugin-multi-input?
Take a look at the rollup preserveModules and preserveModulesRoot options.
A rollup plugin to bundle modular libraries with sub directories.
- Use multiple entry points.
- Use glob in entries.
- Preserve
srctree structure in thedistfolder.
Install
Install via npm or yarn.
npm i -D @ayan4m1/rollup-plugin-multi-input
yarn add @ayan4m1/rollup-plugin-multi-inputSetup
In the rollup configuration
import multiInput from 'rollup-plugin-multi-input';
export default {
// use glob in the input
input: ['src/**/*.js'],
output: {
format: 'esm',
dir: 'dist',
},
plugins: [multiInput()],
};If using a rollup version lower than 1.0.0
enable experimentalCodeSplitting.
It's possible to mix input type.
- use glob in array
input: ['src/**/*.js']; - use object input configuration
// DO 👍 input: [ { output1: 'src/output1.js', }, ]; // DON'T ❌ (glob not supported yet) input: [ { output1: 'src/**/*.js', }, ]; - use glob string and object configuration
input: [ 'src/more/**/*.js', 'src/more2/**/*.js', { output1: 'src/output1.js', }, ];
Options
relative 'src/'
Specify the relative path to use in the dist folder.
Example:
import multiInput from 'rollup-plugin-multi-input';
export default {
input: ['src/bar.js', 'src/foo/bar.js'],
output: {
format: 'esm',
dir: 'dist',
},
plugins: [multiInput({ relative: 'src/' })],
};
// create the files dist/bar.js and dist/foo/bar.jstransformOutputPath
A callback for transforming output file path.
Example:
import multiInput from 'rollup-plugin-multi-input';
import path from 'path';
export default {
input: ['src/bar.js', 'src/foo/bar.js'],
output: {
format: 'esm',
dir: 'dist',
},
plugins: [
multiInput({
relative: 'src/',
transformOutputPath: (output, input) =>
`awesome/path/${path.basename(output)}`,
}),
],
};
// create the files awesome/path/bar.js and awesome/path/foo/bar.jsglob {}
fast-glob object configuration.