[AST Tools] Babel template: replace JQuery
For example we have following code:
$(el).hide() // el.style.display = 'none' $(el).forEach(() => {}) foo.hide()
We want
$(el).hide()
replace with:
el.style.display = 'none'
Plugin:
export default function (babel) { const { types: t, template } = babel; return { name: "ast-transform", // not required visitor: { CallExpression(path) { const isJqueryCallExpression = looksLike(path, { node: { callee: { name: '$' } }, parent: { type: "MemberExpression", property: { name: 'hide' } } }); if (!isJqueryCallExpression) { return } const overallPath = path.parentPath.parentPath; const templateString = `EL.style.display = 'none';` const assignmentBuilder = template(templateString) const assignment = assignmentBuilder({ EL: t.identifier(path.node.arguments[0].name) }) overallPath.replaceWith(assignment) } } }; } function looksLike(a, b) { return ( a && b && Object.keys(b).every(bKey => { const bVal = b[bKey] const aVal = a[bKey] if (typeof bVal === 'function') { return bVal(aVal) } return isPrimitive(bVal) ? bVal === aVal : looksLike(aVal, bVal) }) ) } function isPrimitive(val) { return val == null || /^[sbn]/.test(typeof val) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2019-03-05 [Algorithm] How to use Max Heap to maintain K smallest items
2019-03-05 [HTML5] Avoiding CSS Conflicts via Shadow DOM CSS encapsulation
2019-03-05 [React] Simplify and Convert a Traditional React Form to Formik
2019-03-05 [Javascript Crocks] Make your own functions safer by lifting them into a Maybe context
2019-03-05 [Javascript Crocks] Compose Functions for Reusability with the Maybe Type
2019-03-05 [Algorithm] Array production problem
2019-03-05 [Algorithm -- Dynamic Programming] Recursive Staircase Problem