简介
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