PEG.js loader for webpack
npm install pegjs-loader

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.
`` js`
var parser = require("!pegjs!./parser.pegjs");
// => returns compiled PEG.js parser
It's recommended to adjust your webpack.config so pegjs! is applied automatically on all files ending with .pegjs:
` js`
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:
* allowedStartRules - The rules the built parser will be allowed to start
parsing from (default: the first rule in the grammar).
* cache — If true, makes the parser cache results, avoiding exponentialfalse
parsing time in pathological cases but making the parser slower (default:
).
* 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 for speed orsize
(default: speed).
* trace - If true, the tracing support in the built parser is enabledfalse
(default: ).
` js`
module.exports = {
...
module: {
loaders: [
{
test: /\.pegjs$/,
loader: 'pegjs-loader?cache=true&optimize=size&allowedStartRules[]=RuleA,allowedStartRules[]=RuleB&trace=true'
}
]
}
};
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 cache option.optimize
* VladimirTechMan for the propagation of the option and updating things to be compatible with PEG.js 0.10.0.allowedStartRules
* ragtime for the propagation of the and trace options.dependencies` option.
* Jan Varwig for the Webpack 2 compatibility fix.
* retorquere for the propagation of the
MIT (http://www.opensource.org/licenses/mit-license.php)