javascript - jscodeshift 总是跳过我的 js 文件
问题描述
我正在尝试将我的反应应用程序升级到最新版本的 Material-UI。Material UI 项目包括一个使用 jscodeshift 的迁移帮助脚本。(https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod)
但是,我的所有文件都被 jscodeshift 跳过了,我不知道为什么。我尝试了各种参数和标志,无论所有文件都被跳过。
例如,这是我使用的命令:
jscodeshift -t import-path.js Foo.js -v 2
Processing 1 files...
Spawning 1 workers...
Sending 1 files to free worker...
SKIP Foo.js
All done.
Results:
0 errors
0 unmodified
1 skipped
0 ok
Time elapsed: 0.696seconds
Foo.js 的内容是一个非常基础的 react 组件。我试图消除尽可能多的变量。我创建了最基本的组件。
import React from 'react';
import Button from 'material-ui/Button'
const Foo = (props) =>
<Button>Hello</Button>;
export default Foo;
但是,该文件总是被跳过。我什至尝试了详细日志记录,但仍然没有任何理由跳过该文件。任何帮助将不胜感激。
解决方案
这里有两个问题。
第一的
您必须执行一个手动步骤才能使 codemod 工作,如 import-path 的自述文件中所述:
注意:如果您从 pre-v1.0 迁移,并且您的导入使用 material-ui,您将需要手动查找并将代码中对 material-ui 的所有引用替换为 @material-ui/core。例如:
-import Typography from 'material-ui/Typography';
+import Typography from '@material-ui/core/Typography';
第二
material-ui 的 codemod 似乎不包括Button
. 我尝试了您的示例,StepButton
并且效果很好。
import React from 'react';
import StepButton from '@material-ui/StepButton';
const Foo = (props) =>
<StepButton>Hello</StepButton>;
export default Foo;
请注意,可以在此处找到该列表。
推荐阅读
- python - 发送电子邮件时的outlook pywintypes.com_error
- spring-boot - 如何在拦截器中找到与 Spring Boot 中的请求 URI 匹配的 REST 方法?
- python - Python:Selenium 找不到页面的 xpath
- python - 如何在图中表示非常大和非常小的值
- matlab-figure - 如何提高通过matlab中的videowriter保存的电影中图像的质量?
- reactjs - 单击循环地图中的单个图像时应单击单个图像反应本机
- elasticsearch - 具有混合嵌套/非嵌套过滤器的嵌套对象聚合项
- javascript - 导入时,原型不可见
- python - 可以手动保存图像但不能将图像刮掉,这是怎么回事?
- nrules - 使用表达式树使用运行时索引器访问类型的元素