如何让ast-grep自动将重写规则应用到目标文件?
如何让ast-grep自动将重写规则应用到原文件?
要让ast-grep自动把重写规则应用到原文件,无需手动编辑,只需将sg scan命令替换为sg run命令即可——scan仅用于预览匹配和修改效果,run才会实际对文件执行修改操作。
具体操作步骤
- 执行以下命令,直接应用规则到目标文件:
sg run -r rule.yaml test.js
- 执行完成后,打开
test.js即可看到内容已自动更新为:
let x = 10; let y = 20; let z = x + y; console.log(z);
补充说明
- 若想在实际修改前再次确认效果(避免误改),可给
run命令添加--dry-run参数,它会像scan一样输出修改预览但不改动文件:
sg run --dry-run -r rule.yaml test.js
- 如需批量处理目录下所有JavaScript文件,直接指定目录路径即可:
sg run -r rule.yaml ./path/to/your/js-directory/
你的规则与测试文件参考
rule.yaml
id: replace-var-with-let language: js rule: pattern: var $A = $B fix: let $A = $B
原test.js
var x = 10; var y = 20; var z = x + y; console.log(z);
内容的提问来源于stack exchange,提问作者Herrington Darkholme
相关产品推荐
相关产品推荐

