Open msforest opened 3 years ago
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) } }) }