-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
var esprima = require('esprima')
var estraverse = require('estraverse')
var escodegen = require('escodegen')
var fs = require('fs')
var path = require('path')
// 保留注释
function update(filename) {
var code = fs.readFileSync(filename, 'utf8')
var ast = esprima.parseModule(code, {
tokens: true,
comment: true,
range: true,
})
ast = escodegen.attachComments(ast, ast.comments, ast.tokens)
estraverse.traverse(ast, {
enter(node) {
if (node.type === 'ImportDeclaration') {
node.source.value = ''
}
}
})
var newCode = escodegen.generate(ast, {
format: {
indent: {
adjustMulfilineComment: true
}
},
comment: true
})
fs.writeFileSync(filename, newCode)
}
function travel(dir) {
if (fs.statSync(dir).isFile()) {
return update(dir)
}
var dirs = fs.readdirSync(dir)
dirs.forEach((file) => {
var pathname = path.join(dir, file)
if(fs.statSync(pathname).isDirector()) {
travel(pathname)
} else {
update(pathname)
}
})
}Metadata
Metadata
Assignees
Labels
No labels