问题标签 [jscodeshift]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - codemod/transform 包括 BlockStatement
我正在做一个codemod /转换来更改我的代码中的if
/return
语句。
我有很多,if(err) do something
我需要重构这种行为。
我怎样才能为此进行转换?
我有的:
我想要的是:
到目前为止,我设法替换node.consequent
并直接使用 a callExpression
:
...导致:
如何在里面也包含 theBlockStatement
和 areturn
呢?这是执行此codemod的正确方法吗?
活的例子在这里
javascript - Javascript模板双引号
我有一个问题,我有一个文件,其中包含表单中的对象
我正在构建一个程序,它会自动从文件中填充我的对象,但当前输出的形式为
我的问题是我需要在“red”和“Tom”周围加上单引号或双引号,但其他所有内容都不需要。我曾尝试使用 jscodeshift,但似乎无法正常工作。有人对此有任何提示吗?
非常感谢您的宝贵时间,乔
javascript - 使用 jscodeshift 添加表达式时,错误 {...} 与类型字符串不匹配
我正在尝试 jscodeshift,每当我尝试插入新表达式时,我都会收到以下错误
这是我的小测试中的内容:
你可以在这里试试https://astexplorer.net/#/P6euf9XIlR/1
如果我使用 j(file.source).find().replaceWith() 它没有任何问题。
我在这里做错了什么?
javascript - js 代码转换或从 jQuery 到本机的转换器?
因此,如果我需要像这样更改代码:
像原生一样
我可以做类似的事情(https://astexplorer.net/#/0rIHMowCQf)
作为第一步,这将删除 jQuery$
符号,只留下一个()
可以工作的,但感觉就像我在作弊,因为我只是给 CallExpression 一个空的标识符。我仍然需要发现如何替换参数的顺序。
js代码转换可以用于这种情况,比如将jQuery转换为Native,最终只是:
node.js - 组织需求并将它们移动到文档顶部
我正在应用程序中组织代码。require 语句是杂乱无章的,所以我制作了这个 codemod 来对它们进行排序并将它们添加到页面顶部。
codemod 工作,几乎完美。我有些疑惑:
- 这是一个好的方法,还是有更正确的方法来使用 API?
- 如何在
sourceStart
(所有要求)和其余源代码之间保留空行? - 可以在 ES6 导入中使用类似的方法吗?(即用 jscodeshift 对它们进行排序)
我的初始代码:
我的代码模块:
我得到的结果是:
javascript - 如何强制 jscodeshift/recast 在对象表达式中保留尾随逗号?
我一直在编写一些转换来帮助我重构代码库。我所做的基本上是向某些对象表达式添加一个新属性。为什么jscodeshift/recast
要从这些对象中删除尾随逗号?我怎样才能防止这种情况?
javascript - JSCodeShift:创建 Ajax 请求
我目前正在使用 JSCodeShift 以便在我的应用程序中从 amplify 迁移到 jquery ajax 服务调用。我正在尝试在我的 JSCodeShift 转换文件中创建一个 return 语句,但不断遇到一个冗余错误,由于文档较少,我无法弄清楚。有没有人创建了一个返回语句或用 JSCodeShift 术语“returnExpression”。
这就是我要添加到功能块主体的内容:
这是我不断遇到的错误:
这是我到目前为止编写的转换文件:
检查我尝试使用 jscodeshift 创建 Ajax 请求的函数 createAjaxRequest 。
谢谢, 安基特
jscodeshift - jscodeshift/recast:objectExpression 总是打印得很漂亮。我怎样才能防止这种情况?
我正在使用 jscodeshift 来转换函数调用:
foo() --> foo({uid: ... 标签: ...})
问题是 objectExpression 总是打印得很漂亮:
如何防止这种情况并得到类似的东西:
javascript - jscodeshift 更改对象文字值
使用 jscodeshift,我该如何转换
至
?
我努力了
但我最终得到
这表明replaceWith
只更改键而不是值。