vite-plugin-peggy-loader v2.0.1
Peggy loader for Vite
Install
code based on peggy-loader for webpack.
npm install vite-plugin-peggy-loader
The pegjs-loader requires peggy
as peerDependency
. Thus you are able to specify the required version accurately.
Usage
Apply the loader by adjusting your vite.config
so .pegjs
is automatically transformed to .js
import peggyLoader from "vite-plugin-peggy-loader";
export default defineConfig({
plugins: [peggyLoader()]
});
Then to use the compiled version import it like:
import * as grammer from './grammer.pegjs'
PEG.js options
You can pass options to PEG.js in the config, below is the supported options:
allowedStartRules
- The rules the built parser will be allowed to start parsing from (default: the first rule in the grammar).cache
— Iftrue
, makes the parser cache results, avoiding exponential parsing time in pathological cases but making the parser slower (default:false
).dependencies
- Parser dependencies, the value is an object which maps variables used to access the dependencies in the parser to module IDs used to load them (default:{}
).optimize
- Whether to optimize the built parser either forspeed
orsize
(default:speed
).trace
- Iftrue
, the tracing support in the built parser is enabled (default:false
).
import peggyLoader from "peggy-loader";
export default defineConfig({
plugins: [
peggyLoader({
cache: false,
optimizeParser: 'speed',
trace: false,
dependencies: {},
allowedStartRules: []
})
]
});
Change Log
This project adheres to Semantic Versioning.
Thanks
- Victor Homyakov for the propagation of the
cache
option. - VladimirTechMan for the propagation of the
optimize
option and updating things to be compatible with PEG.js 0.10.0. - ragtime for the propagation of the
allowedStartRules
andtrace
options. - Jan Varwig for the Webpack 2 compatibility fix.
- retorquere for the propagation of the
dependencies
option.