1.1.0 • Published 1 year ago
vite-plugin-barrels v1.1.0
vite-plugin-barrels
Automatically generate barrels for your folders! This plugin taps into the Vite plugin system to automatically recreate barrels on build and whenever a file gets updated or created.
:warning: Warning |
---|
This will remove all content existing in the index of the entry directory and all subdirectories. Only point the entry at a folder with no index files! |
Installation
npm install -D vite-plugin-barrels
Usage
Add the following to your Vite configuration:
// vite.config.js
import barrels from 'vite-plugin-barrels';
export default {
// ...
plugins: [
barrels({
entry: '<your entry folder>',
extension: '<whatever extension>'
})
]
}
Example
This is an example for Svelte. The extension to barrel is .svelte
with the entry being src/lib
.
// vite.config.js
import barrels from 'vite-plugin-barrels';
export default {
// ...
plugins: [
barrels({
entry: 'src/lib',
extension: '.svelte'
})
]
}
Before the build, the directory structure looks like this:
src
└───lib
│ Another.svelte
│ Component.svelte
│
└───layout
Container.svelte
After the build, the barrels get generated:
src
└───lib
│ Another.svelte
│ Component.svelte
│ index.ts
│
└───layout
Container.svelte
index.ts
Barrel content:
// src/lib/index.ts
// Generated by vite-plugin-barrels
export * from "./layout";
export { default as Another } from "./Another.svelte";
export { default as Test } from "./Test.svelte";
// src/lib/layout/index.ts
// Generated by vite-plugin-barrels
export { default as Container } from "./Container.svelte";
Configuration
interface Options {
/**
* Starting directory
*/
entry: string;
/**
* File extension to search for
*/
extension: string | string[] | RegExp;
/**
* Weather or not to use typescript
* @default true When tsconfig.json is found
*/
ts?: boolean;
}