Entry point generator based on code for rollup
- node >=10
npm install rollup-entrypoint-generator --save-dev
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.
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
.
// rollup.config.js
const { generateEntryPoints } = require('rollup-entrypoint-generator')
export default generateEntryPoints('./src').then(input => ({
input,
// ...rest of your rollup config
})
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
})
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
})
Defines the ECMAScript version to parse. See acorn's documentation for possible values. Defaults to 2020
.
👤 Mathias Bernardeau
- Github: @mbernardeau
Contributions, issues and feature requests are welcome!
Feel free to check issues page. You can also take a look at the contributing guide.
Give a ⭐️ if this project helped you!
Copyright © 2020 Mathias Bernardeau.
This project is MIT licensed.
This README was generated with ❤️ by readme-md-generator