【问题标题】:package.json script for React Component quick creation用于快速创建 React 组件的 package.json 脚本
【发布时间】:2018-08-18 10:05:38
【问题描述】:

是否可以在 package.json 中编写一个 脚本,它将创建一个名称作为参数“MyComponent”(例如)传递的新目录,并将创建四个具有相同名称的文件:

  1. MyComponent.js
  2. MyComponent.css
  3. MyComponent.test.js
  4. README.md

"scripts": {
  "new_comp": "..."
}

简单用法:

$ yarn (npm run) new_comp --MyComponent

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

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

【问题讨论】:

    标签: reactjs npm webpack yarnpkg


    【解决方案1】:

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

    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'), '');
    

    命令行

    yarn new_comp MyComponent

    问题是“有可能吗”,所以这是未经测试的,但应该可以帮助您入门。

    注意事项:

    我使用 babel-node 能够在 es6 中编写脚本。

    babel-node

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

    参考资料:

    nodejs - fs

    babel CLI

    【讨论】:

    • 感谢您提出的解决方案。我还设法编写了类似于您的解决方案的内容,但我希望它不依赖于其他文件。最好是简单的命令行指令,如 mkdir 和 touch / echo
    • 如果你只使用 shell 命令行,那么你将依赖你期望的 shell 来解释你的命令。如果您确实知道将涉及哪个 shell,我建议您针对这个特定的 shell 发布一个新问题。
    猜你喜欢
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 2015-05-11
    相关资源
    最近更新 更多