Skip to content

mbernardeau/rollup-entrypoint-generator

Repository files navigation

Welcome to rollup-entrypoint-generator

Version Documentation Maintenance License: MIT

Entry point generator based on code for rollup

Prerequisites

  • node >=10

Install

npm install rollup-entrypoint-generator --save-dev

Why

With Rollup, it is easy to create a tree-shakable library using multiple entrypoints. Each entrypoint is a module that can be imported without the others.

The build process can generate a file per entry point, allowing tree shake by default for library consumers.

The downside is that we need to maintain a list of entrypoints. This lib helps automating this task.

How it works

Find every export of the style export { default as ComponentName } from 'componentPath'. Each one of them with generate an entry point with the name ComponentName.

Usage

// rollup.config.js
const { generateEntryPoints } = require('rollup-entrypoint-generator')

export default generateEntryPoints('./src').then(input => ({
  input,
  // ...rest of your rollup config
})

Configuration

generateEntryPoints accepts an object containing configuration keys as a second parameter.

Example:

// rollup.config.js
const { generateEntryPoints } = require('rollup-entrypoint-generator')

export default generateEntryPoints('./src', { extensions: ['js'] }).then(input => ({
  input,
  // ...rest of your rollup config
})

Accepted configuration

Extensions

By default, this module only searches for files ending with .js, .jsx or .json when trying a configuration path. You can add an extensions array to override this default.

Note that adding extensions assumes the corresponding loader is correctly configured in Rollup.

// rollup.config.js
const { generateEntryPoints } = require('rollup-entrypoint-generator')

// Allow svg, js, jsx as entrypoints
export default generateEntryPoints('./src', { extensions: ['js', 'jsx', 'svg'] }).then(input => ({
  input,
  // ...rest of your rollup config
})

EcmaVersion

Defines the ECMAScript version to parse. See acorn's documentation for possible values. Defaults to 2020.

Author

👤 Mathias Bernardeau

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page. You can also take a look at the contributing guide.

Show your support

Give a ⭐️ if this project helped you!

📝 License

Copyright © 2020 Mathias Bernardeau.
This project is MIT licensed.


This README was generated with ❤️ by readme-md-generator