一个创建react组件(component)的命令行工具
发布于 8 年前 作者 sunbrother 5663 次浏览 最后一次编辑是 7 年前 来自 分享

react-component-maker

一键式创建React组件

功能

  1. 一键式创建React组件,不是React脚手架!
  2. 支持一次创建多个组件

Usage

npm i -g react-component-maker
mkreact App
//此时便会创建App组件
mkreact Header Body Footer
//此时你就分别创建了Header,Body,Footer三个组件

组件详情

一个组件为一个文件夹,文件夹目录为

  • [name].jsx
  • [name].scss
  • package.json

文件内容

[name].jsx

import React from 'react';
import s from './[name].scss'
class [name] extends React.Component {
    constructor(props) {
        super(props);
        this.displayName = [name];
    }
    render() {
        return <div className={s.container}>[name]</div>;
    }
}
export default [name];

[name].scss

.container {
  
}

package.json

{
    "name": "[name]",
	"version": "0.0.0",
	"private": true,
	"main": "./[name].jsx"
}

对于package.json可能有人不理解。

例如你创建了一个Header组件,它是一个文件夹,名字为Header,文件夹内部有如下目录

  • [name].jsx
  • [name].scss
  • package.json

那么当你使用

import Header from './Header'

首先模块系统会定位路径,解析发现Header是一个文件夹,那么它会去找该文件夹下是否有package.json文件,如果有,那么接下来会去解析package.json文件,找到它的main属性,如果有,并且该属性的路径是正确的,那么就将Header文件定位到该属性所指位置;如果以上为否,就会去找index.js,如果都没有就报错。 所以通过package.json可以让文件夹在引入时就像一个文件一样。

地址

https://github.com/sunopar/react-component-maker

10 回复

Star 支持!

没在用 scss 啊,能否再增加对 CSS-Modules 的支持

@xcatliu 非常感谢!

@HugoJing 可以的,可以点个star,之后会有更新

@HugoJing 现在已经更新了,感谢关注

v1.2

支持Less,Scss,css

印象中 eslint 会在资料夹里面找 package.json 找到的话会去读 .eslintrc 因此你创建的资料夹会 lint 不到。。

@ssmlee04 eslint的配置是在顶层的package.json,我这个是组件

@sunbrother 抱歉 应该是 SublimeLinter-eslint 会出问题.

回到顶部