我正在尝试编写一个小的 codemod 来重构一些代码。考虑一下我有这样的事情:
import { mod1, mod2, mod3 } from 'package1'
import localMod from 'package2'
我想将其更改为:
import { mod1, mod3 } from 'package1'
import * as mod2 from 'new-package'
import localMod from 'package2'
作为第一步,我试图mod2
从我成功完成的第一行导入中删除,但我无法删除mod1
.
到目前为止,我的代码片段如下所示:
module.exports = function transformer(file, api) {
const j = api.jscodeshift;
const root = j(file.source);
const reactApolloImports = root
.find(j.ImportDeclaration)
.filter(nodepath => nodepath.value.source.value === "package1")
.find(j.Identifier)
.forEach(nodepath => {
if (nodepath.name === "imported" && nodepath.node.name === "mod2") {
j(nodepath).remove();
}
});
return root.toSource();
};
请帮忙。