首页 > 解决方案 > PEGJS 不会在解析器文件中生成“module.exports”

问题描述

exportVar:...我尝试使用下面的代码生成解析器文件,但是尽管我已包含在选项中,但最终结果文件 parser.js 不包含导出行。

我想在文件顶部手动添加它吗?

const peg = require('pegjs');
const fs = require('fs');

const grammarAsString = fs.readFileSync('./grammar.pegjs').toString();

const option = {
  output: 'source',
  exportVar: 'module.exports',
};

const parserSourceCode = peg.generate(grammarAsString, option);
fs.writeFileSync('./parser.js', parserSourceCode);

标签: pegjs

解决方案


它已通过将格式选项设置为“commonjs”来解决,这会将其传递给解析器。

const option = {
  output: 'source',
  format: 'commonjs',
};
const parserSourceCode = peg.generate(grammarAsString, option);
fs.writeFileSync('./parser.js', parserSourceCode);

推荐阅读