如何解决使用 codemod 运行时,Babel 插件 addComment 不起作用
module.exports = function (babel) {
const { types: t } = babel;
return {
name: 'addComment',visitor: {
Program(path,state) {
path.addComment('leading','@@@ My precIoUs @@@');
path.unshiftContainer('body',t.noop());
}
}
};
}
我希望它应该在模块顶部添加一个注释行 // @@@ My precIoUs @@@
,并在注释后添加一个空行。
./node_modules/.bin/codemod --plugin ./babel-plugin.js ./transform-me.js
我在源文件中只插入了一个空行,没有注释行。 如果我在 astexplorer.net 中尝试相同的代码,它工作正常。
我尝试添加带有 "comments": true 选项的 .babelrc 文件,并使用 --find-babel-config 参数运行 codemod。同样的结果。
我做错了什么?
解决方法
我找到了一个决定。如果我直接操作注释数组,则插入注释:
function addComment(path,comment) {
const rootNode = path.node.body[0];
if (!rootNode.comments) {
rootNode.comments = [];
}
rootNode.comments.push({
leading: true,trailing: false,value: comment,type: 'CommentLine'
});
}
path.addComment('leading','my comment') -> addComment(path,'my comment')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。