Create an ESM entry-file in your Webpack build to consolidate entry-point exports
Support this project by ⭐️ starring and sharing it. Follow me to see what other cool projects I'm working on! ❤️
For consolidating exports from Webpack builds that emit multiple entry-points.
A great use-case for this is Vue.js component builds that extract the CSS into a separate file. Even if the build bundles multiple components, by creating an entry-point that imports the CSS and re-exports the components, consuming applications can simply import from one path to get the appropriate styles.
npm i -D entry-file-plugin
In webpack.config.js
:
+ const EntryFilePlugin = require('entry-file-plugin')
module.exports = {
...,
plugins: [
...,
+ new EntryFilePlugin({
+ imports: [...],
+ exports: [...]
+ })
]
}
The following configuration:
new EntryFilePlugin({
imports: [
'./styles.css',
],
exports: [
'./components.js',
],
})
Creates an index.js
file:
import "./styles.css";
export * from "./components.js";
Type: string
Default: index.js
The entry file name.
Type: string[]
An array of paths to import from.
Type:
type Specifier = (string | {
name: string;
as?: string;
})[];
type Exports = (string | {
from: string;
specifiers?: Specifier[];
})[];
An array of paths and names to export from.
Type: boolean
Default: false
Whether to omit import/export statements for relative paths that could not be resolved. If false
, a warning will be emitted for unresolvable import/exports.
- rollup-plugin-aggregate-exports - Similar plugin for Rollup