我想验证一些 JavaScript 代码的语法正确性,但不对用户强制执行特定的编码样式。
我的第一种方法是esvalidate
使用esprima
. 这部分完成了工作,因为它检测到意外的令牌,例如:
constx foo = {};
它没有检测到的是从未声明过的变量的使用,例如:
const foox = {
bar() {}
};
foo.bar();
诸如此类的工具eslint
会检测到这一点,但是很难以不对用户强制执行特定样式的方式配置 ESLint(我并不是说不可能,我只是说这是一项巨大的工作,因为您需要检查每条规则并决定是启用还是禁用它,并且有数百条规则,这是……是的,嗯,大量的工作)。
我还有什么其他选择?如果没有这种努力,我如何验证代码?
顺便说一句:我想在这里验证什么?这不是语法(我的意思是,从语法上讲,一切都很好,只是没有意义),但也不是语义。这种检查的正确术语是什么?