npm install --save-dev pegjs-loader pegjs webpack
The pegjs-loader requires PEG.js and webpack
as peerDependency. Thus you are able to specify the required versions accurately.
var parser = require("!pegjs!./parser.pegjs");
// => returns compiled PEG.js parserIt's recommended to adjust your webpack.config so pegjs! is applied automatically on all files ending with .pegjs:
module.exports = {
...
module: {
loaders: [
{
test: /\.pegjs$/,
loader: 'pegjs-loader'
}
]
}
};Then you only need to write: require("./parser.pegjs").
You can pass options to PEG.js as query parameters. The following options are supported:
-
cache— iftrue, makes the parser cache results, avoiding exponential parsing time in pathological cases but making the parser slower (default:false) -
optimize- whether to optimize the built parser either forspeedorsize(default:speed) -
allowedStartRules- The rules the built parser will be allowed to start parsing from (default: the first rule in the grammar). -
trace- iftrue, the tracing support in the built parser is enabled (default:false)
module.exports = {
...
module: {
loaders: [
{
test: /\.pegjs$/,
loader: 'pegjs-loader?cache=true&optimize=size&allowedStartRules[]=RuleA,allowedStartRules[]=RuleB&trace=false'
}
]
}
};This project adheres to Semantic Versioning.
Every release, along with the migration instructions, if any, is documented on the Github Releases page.
- Victor Homyakov for the propagation of the
cacheoption. - VladimirTechMan for the propagation of the
optimizeoption.