Skip to content

ozekimasaki/vite-plugin-glob-input

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

vite-plugin-glob-input

npm version license

Vite plugin to add files to build.rollupOptions.input using fast-glob patterns.

Features

  • πŸ“¦ Vite 6 / 7 / 8 Compatible: Fully supports Vite 6, 7, and 8 (Rolldown-powered)
  • πŸ” Fast Glob Integration: Uses fast-glob for efficient file pattern matching
  • 🏷️ Smart Aliasing: Automatically generates meaningful entry names
  • πŸ“ Flexible Configuration: Support for complex directory structures
  • 🎯 TypeScript First: Built with TypeScript for better development experience

Installation

npm install -D vite-plugin-glob-input

Usage

Basic Usage

// vite.config.ts
import { defineConfig } from 'vite'
import globInput from 'vite-plugin-glob-input'

export default defineConfig({
  plugins: [
    globInput({
      patterns: 'src/pages/**/*.html'
    })
  ]
})

Advanced Configuration

// vite.config.ts
import { defineConfig } from 'vite'
import globInput from 'vite-plugin-glob-input'

export default defineConfig({
  plugins: [
    globInput({
      patterns: ['src/pages/**/*.html', 'src/components/**/*.html'],
      options: {
        ignore: ['**/private/**', '**/_*'],
        absolute: false
      },
      disableAlias: false,
      homeAlias: 'main',
      rootPrefix: 'page',
      dirDelimiter: '-',
      filePrefix: '_'
    })
  ]
})

Configuration Options

VitePluginGlobInputOptions

Option Type Default Description
patterns string | string[] - Required. Glob patterns to match files
options FastGlob.Options {} Options passed to fast-glob
disableAlias boolean false Disable automatic alias generation
homeAlias string 'home' Alias name for index files in root
rootPrefix string 'root' Prefix for non-index files in root
dirDelimiter string '-' Character to replace path separators
filePrefix string '_' Prefix for non-index files

Fast-Glob Options

The options field accepts any fast-glob options. Common options include:

  • ignore: Array of patterns to ignore
  • deep: Maximum depth of directory traversal
  • onlyFiles: Return only files (default: true)
  • case: Case sensitive matching

File Naming Convention

The plugin automatically generates entry aliases based on file paths:

File Path Generated Alias Description
src/index.html home Root index file
src/about.html root_about Root non-index file
src/blog/index.html blog Directory index file
src/blog/post.html blog_post Directory non-index file

Custom Naming

globInput({
  patterns: 'src/**/*.html',
  homeAlias: 'main',      // index.html β†’ 'main'
  rootPrefix: 'page',     // about.html β†’ 'page_about'
  dirDelimiter: '__',     // blog/post.html β†’ 'blog__post'
  filePrefix: '--'        // blog/post.html β†’ 'blog--post'
})

Examples

Static Site Generation

// Generate entries for all pages
globInput({
  patterns: 'src/pages/**/*.html',
  options: {
    ignore: ['**/templates/**', '**/_*']
  }
})

Multi-Entry Application

// Multiple entry points for different sections
globInput({
  patterns: [
    'src/admin/**/*.html',
    'src/public/**/*.html'
  ]
})

Disable Aliasing

// Use file paths as-is
globInput({
  patterns: 'src/**/*.html',
  disableAlias: true
})

Compatibility

  • Vite: ^6.0.0 || ^7.0.0 || ^8.0.0
  • Node.js: 20.x, 22.x
  • TypeScript: 5.x

Development

Testing

This project uses Vitest 4 for testing:

# Run tests
npm test

# Run tests with coverage
npm run coverage

# Run tests in watch mode
npm run test:watch

Building

# Build the package
npm run build

# Type check
npm run type-check

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see the LICENSE file for details.

Changelog

v0.3.0

  • ✨ Vite 8 support (Rolldown-powered builds)
  • ✨ Vitest 4 integration
  • ⬆️ Node.js 20+ required

v0.2.1

  • ✨ Vite 7 support

v0.0.1

  • ✨ Initial release
  • πŸ”§ TypeScript configuration
  • πŸ“ Comprehensive documentation

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors