删除空行和空语句
目标
示例代码:
1 2 3 4 5 6 7
| var a = 123;
;
var b = 456;
|
转换为
1 2
| var a = 123; var b = 456;
|
分析
空语句的节点type是 EmptyStatement ,空行不会被解析,所以使用generator方法处理
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| const parser = require("@babel/parser")
const traverse = require("@babel/traverse").default
const t = require("@babel/types")
const generator = require("@babel/generator").default
var jscode = 'var a = 123;\n' + '\n' + '\n' + '\n' + ';\n' + '\n' + '\n' + '\n' + 'var b = 456;'
const vistor = { EmptyStatement(path){ path.remove(); } }
const ast = parser.parse(jscode); traverse(ast, vistor)
options = { readlines: true }
let {code} = generator(ast, opts=options); console.log(code)
|
查看结果