react-component-maker
一键式创建React组件
功能
- 一键式创建React组件,不是React脚手架!
- 支持一次创建多个组件
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可以让文件夹在引入时就像一个文件一样。
地址
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 会出问题.
@ssmlee04 客气客气