Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 用于快速创建React组件的package.json脚本_Reactjs_Npm_Webpack_Yarnpkg - Fatal编程技术网

Reactjs 用于快速创建React组件的package.json脚本

Reactjs 用于快速创建React组件的package.json脚本,reactjs,npm,webpack,yarnpkg,Reactjs,Npm,Webpack,Yarnpkg,是否可以在package.json中编写一个脚本,该脚本将创建一个名为“MyComponent”的新目录(例如),并将创建四个同名文件: MyComponent.js MyComponent.css MyComponent.test.js 自述文件 简单用法: $THEAN(npm运行)新公司——MyComponent ->新建目录“MyComponent”,创建了四个指定文件 *目录应该在我的当前目录中创建(而不是在package.json所在的根目录中)我怀疑这可能是一个可以直接从pack

是否可以在package.json中编写一个脚本,该脚本将创建一个名为“
MyComponent
”的新目录(例如),并将创建四个同名文件:

  • MyComponent.js
  • MyComponent.css
  • MyComponent.test.js
  • 自述文件

  • 简单用法:

    $THEAN(npm运行)新公司——MyComponent

    ->新建目录“MyComponent”,创建了四个指定文件


    *目录应该在我的当前目录中创建(而不是在package.json所在的根目录中)

    我怀疑这可能是一个可以直接从package.js脚本调用的本机npm命令。 但是,当然可以编写一个javascript脚本文件并从Thread调用它。您只需创建脚本,该脚本将实际创建文件夹及其内容

    package.json

    ...
    "scripts": {
        ...
        "babelnode": "node node_modules/babel-cli/bin/babel-node",
        "new_comp": "yarn babelnode ./src/scripts/createComponent.js",
        ...
    }
    ...
    
    createComponent.js

    import fs from 'fs';
    
    const dir = process.argv[2];
    if (!fs.existsSync(dir)){
        fs.mkdirSync(dir);
    }
    fs.writeFileSync(path.join(dir,`${dir}.js`), '');
    fs.writeFileSync(path.join(dir,`${dir}.css`), '');
    fs.writeFileSync(path.join(dir,`${dir}.test.js`), '');
    fs.writeFileSync(path.join(dir,'README.MD'), '');
    
    命令行

    纱线新组件MyComponent

    问题是“是否可能”,所以这是未经测试的,但应该让您开始

    注意事项:

    我使用了babel node来编写es6中的脚本

    如果不使用它,“MyComponent”参数可能不在
    process.argv的索引2中

    参考文献:


    感谢您提出的解决方案。我还设法写了一些类似于您的解决方案的东西,但我希望它不依赖于其他文件。最好只是像mkdir和touch/echo这样的命令行指令。如果您只使用shell命令行,那么您将依赖于希望解释命令的shell。如果您确实知道哪个shell将参与其中,我建议您针对这个特定的shell发布一个新问题。
    import fs from 'fs';
    
    const dir = process.argv[2];
    if (!fs.existsSync(dir)){
        fs.mkdirSync(dir);
    }
    fs.writeFileSync(path.join(dir,`${dir}.js`), '');
    fs.writeFileSync(path.join(dir,`${dir}.css`), '');
    fs.writeFileSync(path.join(dir,`${dir}.test.js`), '');
    fs.writeFileSync(path.join(dir,'README.MD'), '');