问题标签 [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.

0 投票
2 回答
3301 浏览

jscodeshift - 如何对所有文件运行 jscodeshift 转换?

我正在创建一个转换,它将替换以下所有实例:

我这样做是因为我正在改变 AngularJS 代码引入模板的方式。我要让它们都使用 webpack 字符串加载器。

我已经让转换工作了。但是现在我不知道如何针对我项目中的所有文件运行它。我在文档中看不到如何针对.js我项目中的所有文件运行它。要运行我的转换,我目前输入:

此命令将对myComponent.js文件运行我的转换,但我希望它对.js我项目中的所有文件运行。我需要使用当前命令更改什么以使其选择所有.js文件并针对所有文件运行转换?

0 投票
1 回答
525 浏览

javascript - 如何使用 jscodeshift 找到没有父节点的节点?

我想在此脚本中找到没有任何父级的调用表达式:

在这里,我想获取1 + 13 + 3节点,但不是2 + 2

我想要实现的是:

那么是否有一个过滤器可以查找表达式是否有父级?

这是一个真实的用例。

0 投票
1 回答
115 浏览

javascript - javascript recast .toSource 选项被忽略

我正在尝试转换和重新格式化此 javascript 代码:

使用这个重新编码插件:

保存在这里https://astexplorer.net/#/gist/994b660144d9e065906dc41bc14c9c39/c3910178f527d57de5422a0ddce9e515a460182d

我想得到以下输出:

但该{quote:'single'}选项被忽略,我不确定是否有一个选项可以强制缩进 if body on new line。这是astexplorer的错误,重新编码还是我做错了什么?

0 投票
2 回答
2183 浏览

typescript - 如何解析、修改和重新生成 TypeScript 文件(如 jscodeshift)的 AST?

我的用例:我正在构建一个修改 TypeScript 文件的Yeoman 生成器;方式类似于:

  • 添加import语句
  • 将组件导入 AngularJS 模块

Yeoman 建议为此任务使用 AST 解析器:

最可靠的方法是解析文件 AST(抽象语法树)并对其进行编辑。

jscodeshift 之类的工具使 JavaScript 文件变得相当简单,但它似乎不支持 TypeScript。有没有类似的工具来解析和修改 TypeScript 文件的 AST?

0 投票
2 回答
3831 浏览

javascript - 如何使用jscodeshift在文件开头插入一行

https://astexplorer.net/#/gist/ad90272020dd0bfb15619d93cca81b66/28d3cf7178271f4f99b10bc9352daa873c2f2b20

如果文件的第一行代码不同,insertBefore 如何工作。例如(变量​​声明、导入语句)

0 投票
1 回答
608 浏览

javascript - 如何将 ast-node 转换为其表示的底层 javascript 的字符串

如何将节点转换为 javascript?

https://astexplorer.net/#/gist/cf11a829035dd865a3fbf6744aa4b146/50e921c2b4bea27c5d1b214acae3c5ef11a2f1af


0 投票
1 回答
754 浏览

javascript - JSCodeshift 声明新变量

我想编写一个模板函数来在 JsCodeShift 中创建新变量。

任何人都有一个想法如何?或者一些更好的文档?

根据this ,我尝试了下面的代码。

但我得到了错误

干杯詹斯

0 投票
1 回答
447 浏览

javascript - 如何在jscodeshift中逐行获取代码

我对 jscodeshift 很陌生。是否可以逐行获取代码。

但是这种方法的问题在于我无法对变量中获得的结果应用转换p。例如。对于下面的输入

我需要逐行转换内容。是否可以在 jscodeshift 中逐行应用转换。

0 投票
2 回答
1253 浏览

abstract-syntax-tree - 如何用刚刚解析的 javascript(string) 替换 AST 中的路径?

https://astexplorer.net/#/gist/70df1bc56b9ee73d19fc949d2ef829ed/7e14217fd8510f0bf83f3372bf08454b7617bce1

我现在发现我正在尝试replace一种表达方式,我不在乎里面有什么。

在这个例子中,我找到了this.state.showMenu && this.handleMouseDown部分

我需要转换为:

在不明确重建树的情况下如何做到这一点?我只想做类似的事情

0 投票
1 回答
681 浏览

javascript - jscodeshift - 如何在块语句的开头插入调用表达式

我在玩 AST。我现在的目标是为文件中的每个块语句添加一个标识符。但是 ast explorer 抛出了一个我无法破译的错误。

改装后

AST

如何使用 jscodeshift 添加这样的东西。