问题标签 [codemod]
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.
eslint - Codemod 与 eslint --fix
我想编写几个脚本来自动检测丢失的导入并根据根目录导入它们。将此脚本编写为 codemod 脚本还是带有 fix 选项的 eslint 规则更好?
abstract-syntax-tree - 如何用刚刚解析的 javascript(string) 替换 AST 中的路径?
我现在发现我正在尝试replace
一种表达方式,我不在乎里面有什么。
在这个例子中,我找到了this.state.showMenu && this.handleMouseDown
部分
我需要转换为:
在不明确重建树的情况下如何做到这一点?我只想做类似的事情
javascript - jscodeshift抛出错误:不匹配类型字符串
我正在尝试改变它:
进入这个:
所以我为jscodeshift编写了以下codemod:
但我得到了错误:
jscodeshift - 如何在检查模式下启动 jscodeshift?
这曾经是可运行的,但最近我遇到了以下问题。
通过运行以下命令:
节点 --inspect-brk ./node_modules/.bin/jscodeshift mod.js 文件。
我遇到了这个问题
javascript - 带有 jscodeshift 的 Codemod - 从导入中删除逗号
我正在尝试编写一个小的 codemod 来重构一些代码。考虑一下我有这样的事情:
我想将其更改为:
作为第一步,我试图mod2
从我成功完成的第一行导入中删除,但我无法删除mod1
.
到目前为止,我的代码片段如下所示:
请帮忙。
reactjs - 使用流项目为 javascript 运行 react-codemod 时出错
在使用流的 javascript 项目中运行时遇到错误。
npx react-codemod 重命名-不安全-生命周期
如何让这个 codemod 正常运行。这是将项目的 React 版本升级到 16.9+ 所必需的
javascript - Codemod - 在使用导出语法的节点中读取文件
npm
处理在任何给定源存储库上运行 codemod的包。作为我的 codemod 的一部分,我希望替换源存储库中的某些值。在替换这些值之前,我需要检查从特定文件(我们称之为constants.js
)导出的对象中的值是否存在这些值。我需要执行的上述检查constants.js
是有条件的。如果 codemod 的用户想要查找constants.js
文件是有条件的。该constants.js
文件使用该import..export
语句导出我需要的对象。
关于如何从该文件中提取对象的任何指示?我不能在babel
这里真正使用该选项,所以我正在尝试使用这些fs
方法来获得我想要的东西。我使用的createReadStream
方法是读取文件,但是解析它以提取默认导出似乎很脆弱。有没有一种干净的方法可以得到我需要的东西?
在下面的示例中,我希望能够提取Messages
,以便查找termsOfUse
我的 codemod 更改。
常量.js
在此先感谢您的帮助。
javascript - jscodeshift TypeScript codemod - 删除通用类型但保留包装类型
我目前正在尝试编写一个 codemod,它将$ReadOnly<T>
从 TypeScript 代码库中删除所有泛型,仅保留T
(T
作为对象/联合)
到目前为止,这就是我想出的
我们的想法是修改如下内容:
对此:
不幸的是,这就是我最终的结果,带有重复的type
关键字:
知道这里可能出了什么问题吗?
javascript - Babel 类型转换 - 在运算符周围添加空间。如何绕过?
我有一行代码正在尝试使用 babel 转换。
这个,const [firstName, setFirstName] = useState<string>("")
但是,当我运行转换以插入此代码时,<brackets>
它们周围都有额外的空间。所以我得到useState < string > ("")
...
我觉得这可能是故意的代码格式。但对于这个特定领域,我希望它不要那样做。我不希望运算符周围的额外空间仅用于我的这部分代码。我怎样才能做到这一点?
这是我的转换/配置
"@babel/core": "^7.12.13",
"@babel/plugin-syntax-typescript": "^7.12.13",
我只能找到有关如何添加额外间距的信息,但不能删除它。
babeljs - 使用 codemod 运行时,Babel 插件 addComment 不起作用
我创建了一个 babel 插件:
我希望它应该// @@@ My precious @@@
在模块顶部添加一个注释行,并在注释后添加一个空行。
我用@codemod/cli 运行了这个插件:
而且我在源文件中只插入了一个空行,没有注释行。如果我在 astexplorer.net 中尝试相同的代码,它工作正常。
我尝试使用 "comments": true 选项添加 .babelrc 文件并使用 --find-babel-config 参数运行 codemod。同样的结果。
我做错什么了?