问题标签 [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.
npm - Npm 脚本不运行包含 glob 模式的脚本
我有的
我正在使用jscodeshift
库来修改一些文件,所以我npm script
像这样运行它:
但是控制台输出抛出,问题是,如果我输入脚本工作No files selected, nothing to do.
的绝对路径。src/gql/specificFolder/gqlTypes/specificFile.specificExtension
我试过的
- 用单引号包裹路径:
- 用转义的双引号包裹路径:
环境
- 窗户 10
- npm 7.7.3
jscodeshift - 如何取消注释 JSCodeshift 中的注释行或块
我一直在尝试转换脚本中的注释行以取消注释它们,但我找不到任何注释。
javascript - 如何使用 jscodeshift 创建程序节点
我正在使用 jscodeshift 提取某些来源的片段并将它们移动到一个新文件中。
我想使用 recast 的 API 创建一个合适的程序主体,但我没有找到可行的方法。
jscodeshift 公开了程序构建器,但没有适当的主体构建器,并且没有一个构建器与 StatementKind 的预期形状匹配。
这是我尝试过的:
但我得到这个错误:
“VariableDeclaration”类型的参数不能分配给“StatementKind[]”类型的参数。
有什么惯用的方法来实现这一点吗?或者我应该只构建节点,将它们推送到已经转换为字符串的数组(使用toSource
),然后将该数组写入目标文件?这就是我现在正在做的事情,但我猜测是否有更好的方法。
jscodeshift - jscodeshift 如何在 AST 中获取 typeof 变量?
ts代码:
jscodeshift代码:
我需要将代码中的'Name'改成其他文案,但只需要修改'columns'中的'Name','nameObject'和'name'不需要修改,怎么找变量type(NameObject, string, Column[]) 判断是否需要修改?
javascript - jsCodemod 的更新变量引用问题
我对 jscodeshift 很陌生。
目标: 我正在尝试构建一个执行以下操作的 codemod:
- 删除旧导入 -> 完成
- 添加新的导入 -> 完成
- 更新旧导入的所有引用 -> 不确定如何执行此操作
我正在为此任务使用转换导入库。
源代码:
代码:
问题:
如何更新代码中对Query
toiQuery
的引用?
javascript - 在大型 javascript 代码库中使用 codemods 将所有 let 变量声明更改为 const
我想在代码库中使用的约定是:
然而,代码中有很多地方是这样写的:
我想写一个codemod,可能使用JSCodeshift,可以将变量声明的第二种样式更改为第一种。我一直在对 AST 进行一些研究,并一直在使用 AST explorer。但是,我无法访问抽象语法树中的变量声明符“kind”。
我尝试过的一个例子是:
任何帮助或方向将不胜感激!谢谢!
reactjs - 使用 jscodeshift 移除外部 React 组件
我正在做一个小项目,我需要从树中删除特定组件而不删除其子项。
让我们想象下面的代码:
使用 jscodesift,我想删除<Background color="XXX">
打开和关闭元素,以便输出为:
现在,我一直在努力寻找一种方法来删除nodePath.node.openingElement
和nodePath.node.closingElement
不删除他们的孩子。
有人知道我想做的事情是否可行吗?什么可以帮助我解决这个问题?
typescript - 删除节点时,使用 tsx 解析器 jscodeshift 在类型声明的末尾添加逗号
我正在尝试更新与流配合使用的 codemod 以使用 typescript。在流程中,我能够很好地完成任务,即在类型声明中查找特定属性并将其删除。使用流解析器时,您必须使用正常工作的 ObjectTypeProperty。使用打字稿的特定选择器时,打字稿会出现问题。
输入:
执行:
输出:
预期的输出完全相同,只是没有逗号。
javascript - 为什么选择 ASTPath不可分配给 ASTPath 类型的参数
我正在使用 JSCodeshift 迁移一些旧的 JS 文件。我要做的一件事是找到所有函数(普通函数和箭头函数),然后在它们的主体中添加一些代码。要找到两者,我只需使用通用 Function 构造函数来搜索所有可能的函数。但是,当我尝试在 jscodeshift 函数上使用 find 节点时,会出现类型错误。所以,这个简单的代码可以作为一个例子:
这是完整的错误:
看Error的定义,是扩展ASTNode,应该兼容吧?
但是,如果我使用 ArrowFunctionExpression 作为查找查询:
它不会抱怨类型,这很奇怪,因为 ArrowFunctionExpression 只是扩展了 Function 类型
javascript - jscodeshift 将 forEach 转换为 for 循环
我是 jscodeshift 和 AST 的新手,但我正在尝试对现有的 forEach 循环进行转换并将它们转换为常规的 for 循环。
我想隐藏以下内容:
对此:
我一直在浏览一些文档并进行搜索,但我找不到这样做的方法。