npm 包 eslint-template-visitor 使用教程

阅读时长 6 分钟读完

简介

eslint-template-visitor 是一款运行在 ESLint 内部的插件,可以用于规则定制时的 AST 访问。通过该插件,你可以在 ESLint 编译代码时,便捷地访问代码对应的 AST,并在 AST 上进行各种自定义操作。

安装

你可以通过 npm 全局安装 eslint-template-visitor

或者将该插件作为开发依赖项安装在你本地的工程中。

使用

在使用 eslint-template-visitor 之前,你需要在你的 ESLint 配置文件中设置要使用的插件,且尽可能地在你的代码样式中添加足够的注释信息,在这些注释信息的基础上完成 ESLint 配置的定制。一旦所有进程完成,你就可以运行 eslint --no-eslintrc -f rd-lib/formatter.js your_file_name.js 命令,完成操作。

下面是一个简单的示例,展示如何将 eslint-template-visitor 插件添加到你的 ESLint 配置中。

下面是一个基础的例子,它使用该插件访问程序树节点,获得节点的类型名称和位置信息。

-- -------------------- ---- -------
-- -----------------

---
 - ------ ------
 - ---- -- - ------ ------ ---- ---- -------- ----- -- --- ---
 - --- ---------- ----- ---- ---- --- -------- ------------
 --
-------------- - -
  ------ -
    ------------------------------------ --------
  --
--
展开代码
-- -------------------- ---- -------
-- --------

-------------- - -
  ------ -
    ------------ -
      --------------- -
        ------ -
          -- -- --- --------------
          -------------------- -
            -------------------- ---- ----- ------------ - -
              --- -------- ------------------------ ------------------------- - -
              --- ---------------------- ---------------------------
          --
        --
      --
    --
  --
--
展开代码

在完成代码修改并且 ESLint 配置准备完毕后,你就可以运行如下命令,用于访问你的程序代码树。

你会在你的控制台看到如下输出:

输出信息反映了这个程序中 Program 的 AST 节点类型和地址定位信息。

示例代码

下面是一个例子,展示如何在 eslint-template-visitor 中使用 scope-manager,进一步实现 AST 访问、分析、定制和修改。你也可以基于这个例子,扩展你自己的功能,并根据你的需求更改插件代码。

-- -------------------- ---- -------
-- --------

-------------- - -
  ------ -
    ------------- -
      --------------- -
        --- -------------
        --- ------------

        ------ -
          ------------- -
            ------------ - -------------------------------------
            ----------- - -------------------------

            ------------------------
          --
        --

        -------- ----------------- -
          -------------------------------------- -- -
            -----------------------
          ---

          ------------------------------- -- -
            -- ---------- --- ----------------- -
              ----------------
                -----
                -------- ---- ------ ------ -- ------ -- --------------
              ---
            -
          ---
        -
      --
    --
  --
--
展开代码

该代码会检查在不是 if statement 嵌套之内的代码块,并用 ESLint 报告错误。

-- -------------------- ---- -------
-- -----------------

---
 - ------ ------
 - ---- -- - ------ ------ ---- ---- -------- ----- -- --- ---
 - --- ----- ----- --------- --- -- -- ----------
 --
-------------- - -
  ------ -
    ------------------------------------- --------
  --
--
展开代码

你可以以 your_file_name.js 为输入文件,运行如下命令,获得 ESLint 在上面例子中的操作结果:

出现的警告信息提醒了整个代码分析的有效性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedc3e7b5cbfe1ea0612166

纠错
反馈

纠错反馈