维护大规模的JavaScript代码库从来不是一件容易的事情,而迁移重大的变更更是极具挑战。在简单的场景中,带有重构能力的IDE也许能帮得上忙。但是,如果代码库依赖广泛,每次想要做出重大的变更时,你都不得不遍历客户端代码库,才能做出合适的更新。这需要人工的监管并手工完成。jscodeshift,一个可以重构JavaScript和打印稿的工具,能帮助减轻这种痛苦。它能把你的代码分析成抽象语法树(AST),并提供API通过不同的变换(也就是在既有的组件上添加,重命名以及删除属性)操作这棵树,然后把这棵树导出成最终源代码。jscodeshift还附带一个简单的单元测试程序,它能用测试驱动开发的方法编写迁移codemods。我们还发现jscodeshift对于维护设计系统尤其有效。