自定义规则检查源码

custom rule checking source code

我正在使用 ESLint 制定自定义规则。

基本上:

module.exports = function (context) {
    var file = context.getSource();
    var fileName = context.getFilename();
    var lines = file.split(/\n/);
    lines.forEach(function(line, i){
        // [...] validation logic

        var report = {
            message: 'Code style error.'
        };

        report.loc = {
            line: i + 1,
            col: 1 // I have some logic for this working
        };

        context.report(report);
    });

    return {}; // do I need this?
};

我的代码可以找到我正在寻找的错误,但我无法将它们报告给 ESLint。

我得到:

Error while loading rule 'test-rule': Cannot read property 'type' of undefined

我应该如何配置 context.report(report); 并且这个模块应该有一个 return 因为我根本不使用 AST?

有什么关于我遗漏的建议吗?

从今天开始,您还必须提供 node 密钥。但我知道文档另有说法,这就是为什么我在那里打开一个问题:https://github.com/eslint/eslint/issues/4220