ESLint规则开发过程中如何调试

问题描述 投票:0回答:3

我有 C# 背景,因此在 Visual Studio 中按 F5 并获得了美妙的调试体验,这让我很开心。

我想进入 OSS,并且当我使用 ESLint 时,我经常想尝试回馈。

我已成功遵循 http://eslint.org/docs/developer-guide/development 环境,但现在陷入困境。

如何通过调试器运行规则,以便设置断点并检查 AST、上下文等?

我认为很多

console.log
的声明并不是前进的方向。

eslint
3个回答
4
投票

您有很多调试 NodeJS 应用程序的选项。我想到的有 Visual Studio Code、WebStorm、Visual Studio + NodeJS Tools、IronNode、Node Inspector。所有这些都将允许您使用相同的工作流程,按 F5 启动流程并附加到它。但对于 NodeJS,大多数都需要一些配置。 特别是对于 ESLint,调试单元测试有点问题,因为 ESLint 为 DRY 单元测试提供了 Mocha 语法的包装器。最好的选择是将调试器设置为在单个文件上运行 mocha,并在规则代码中设置断点,而不是单元测试本身,因为单元测试只是对象数组,因此您无法在其中添加断点。


0
投票

通过网络风暴,您可以:

  1. 创建带有参数的类型节点的运行配置,例如:

node_modules/eslint/bin/eslint.js file-your-want-to-lint.ts --fix

  1. 要调试的自定义规则代码添加

    debugger
    关键字

  2. 使用调试按钮运行新配置(不仅仅是运行)


0
投票

我使用

eslint-plugin-rulesdir
插件创建自定义规则。

进入 vscode 后,我可以使用简单的 console.log 调试我的规则

规则示例

module.exports = {
  meta: {
    type: 'problem',
    docs: {
      description: 'Example,
      category: 'Best Practices',
      recommended: true,
    },
    schema: [],
  },
  create(context) {
    return {
      TryStatement(node) {
         console.log('DEBUG 22', node.block.body);
      },
    };
  },
};

然后您可以按照以下步骤检查您的日志

  1. ctrl+maj+p -> Restart eslint server
    restart eslint server
  2. 在输出面板上的下拉列表中选择 Eslint Eslint output panel
© www.soinside.com 2019 - 2024. All rights reserved.