Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

alfredosalzillo/rollup-plugin-multi-input

Repository files navigation

rollup-plugin-multi-input

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 src tree structure in the dist folder.

Install

Install via npm or yarn.

npm i -D rollup-plugin-multi-input
yarn add rollup-plugin-multi-input

Setup

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.js

transformOutputPath

A callback for transforming output file path.

Example:

`awesome/path/${path.basename(output)}`, }) ], }; // create the files awesome/path/bar.js and awesome/path/foo/bar.js">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.js

glob {}

fast-glob object configuration.

hideBuildStartMessage

Hide the build start message.

About

A Rollup plugin to bundle modular libraries

Topics

Resources

Readme

License

MIT license

Stars

Watchers

Forks

Sponsor this project

Contributors