【问题标题】:jscodeshift is always skipping my js filesjscodeshift 总是跳过我的 js 文件
【发布时间】:2018-11-08 13:01:48
【问题描述】:

我正在尝试将我的 react 应用程序升级到最新版本的 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;

但是,文件总是被跳过。我什至尝试过详细日志记录,但仍然没有任何理由跳过该文件。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    这里有两个问题。

    首先

    您必须执行一个手动步骤才能使 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;

    请注意,可以在here找到该列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      • 1970-01-01
      • 2019-05-10
      • 2017-08-03
      • 2016-01-02
      相关资源
      最近更新 更多