0.0.3 • Published 1 year ago

vite-plugin-java v0.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Vite Plugin for Java (Spring MVC)

This is a Vite plugin for integrating Java (Spring MVC) projects with Vite. Inspired by the laravel/vite-plugin, it provides functionalities to handle assets, configuration, and development server setup tailored for Java projects.

Features

  • Supports multiple entry points
  • Customizable public and build directories
  • Configurable TypeScript compiler (esbuild or swc)
  • Hot module replacement support
  • Automatic configuration based on environment variables

Installation

npm install --save-dev vite-plugin-java

Usage

Configuration

Create a vite.config.js file in your project's root directory:

import { defineConfig } from 'vite'
import java from 'vite-plugin-java'

export default defineConfig({
  plugins: [
    java({
      input: 'src/main.ts',
      publicDirectory: 'public',
      buildDirectory: 'build',
      outputDirectory: 'dist',
      tsCompiler: 'esbuild',
      swcOptions: {
        jsc: {
          target: 'es2015'
        }
      },
      transformOnServe: (code, url) => code.replace('__PLACEHOLDER__', url)
    })
  ]
})

Options

OptionTypeDefaultDescription
inputstring | string[] | { [entryAlias: string]: string }RequiredEntry points to compile
publicDirectorystring'public'Directory for public assets
buildDirectorystring'build'Subdirectory where compiled assets should be written
outputDirectorystring'dist'Directory where the bundle should be written
tsCompiler'esbuild' | 'swc''esbuild'@experimental TypeScript compiler to use
swcOptionsSwcOptions{}@experimental Options to pass to the SWC compiler
transformOnServe(code: string, url: DevServerUrl) => stringcode => codeTransform the code while serving

Example

import java from 'vite-plugin-java'

export default {
  plugins: [
    java({
      input: {
        main: 'src/main.ts',
        admin: 'src/admin.ts'
      },
      publicDirectory: 'static',
      buildDirectory: 'assets',
      outputDirectory: 'build',
      transformOnServe: (code, url) => code.replace('__VITE_URL__', url)
    })
  ]
}

API

java(config: string | string[] | VitePluginJavaConfig): [JavaPlugin, ...Plugin[]]

Initializes the Java plugin with the provided configuration.

Types

VitePluginJavaConfig

export interface VitePluginJavaConfig {
  input: string | string[] | { [entryAlias: string]: string }
  publicDirectory?: string
  buildDirectory?: string
  outputDirectory?: string
  tsCompiler?: SupportedTSCompiler
  swcOptions?: SwcOptions
  transformOnServe?: (code: string, url: DevServerUrl) => string
}

export type SupportedTSCompiler = 'esbuild' | 'swc'
export type DevServerUrl = `${'http' | 'https'}://${string}:${number}`

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

License

This project is licensed under the MIT License.

Acknowledgements

Inspired by laravel/vite-plugin.

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago

0.0.1-beta.2

1 year ago

0.0.1-beta.1

1 year ago