bun-plugin-glsl
Version:
Import, inline (and minify) GLSL/WGSL shader files
59 lines (43 loc) • 1.99 kB
Markdown
# Bun Plugin GLSL
> Import, inline (and minify) GLSL/WGSL shader files



_Inspired by [vite-plugin-glsl](https://github.com/UstymUkhman/vite-plugin-glsl), compatible with [Babylon.js](https://www.babylonjs.com/), [three.js](https://threejs.org/) and [lygia](https://lygia.xyz/)._
## Installation ##
```bash
bun add bun-plugin-glsl --dev
```
## Usage ##
```js
import glsl from 'bun-plugin-glsl';
Bun.plugin(glsl());
```
### With TypeScript ###
Add extension declarations to your [`types`](https://www.typescriptlang.org/tsconfig#types) in `tsconfig.json`:
```json
{
"compilerOptions": {
"types": [
"bun-plugin-glsl/ext"
]
}
}
```
or as a [package dependency directive](https://www.typescriptlang.org/docs/handbook/triple-slash-directives.html#-reference-types-) to your global types:
```ts
/// <reference types="bun-plugin-glsl/ext" />
```
## Default Options ##
```js
glsl({
include: /\.(glsl|wgsl|vert|frag|vs|fs)$/, // RegExp of file extensions to import
removeDuplicatedImports: false, // Automatically remove an already imported chunk
warnDuplicatedImports: true, // Warn if the same chunk was imported multiple times
defaultExtension: 'glsl', // Shader suffix to use when no extension is specified
importKeyword: '#include', // Keyword used to import shader chunks
minify: false, // Minify/optimize output shader code
watch: true, // Recompile shader on change
root: '/' // Directory for root imports
})
```