Javascript代码到AST表示,就像我们在babelTypes中所做的那样



每次我想修改时,我都必须编写t.importDeclaration([t.importDefaultSpecifier(t.identifier(`${importcomponentName}`))], t.stringLiteral(`../components/${importcomponentName}`))

这只是一个导入语句。例如,如果我想生成一个完整的组件,我必须编写一个很长的代码,它在文件中太长,而且很耗时。我们有什么简单的方法可以通过递归、库或任何工具来做到这一点吗?

Babel为这种类型的东西提供了@babel/template,因此您可以替换

const decl = t.importDeclaration(
[t.importDefaultSpecifier(t.identifier(`${importcomponentName}`))], 
t.stringLiteral(`../components/${importcomponentName}`)
);

带有

const decl = template.ast`
import ${importcomponentName} from "${`../components/${importcomponentName}`}";
`;

Loganfsmyth的答案的替代方案,您可以使用@babel/generator:而不是使用@babel/template

import babelGenerate from '@babel/generator';
const decl = babelGenerate(
`import ${importcomponentName} from '${`../components/${importcomponentName}`}';`
);

相关内容

最新更新