React component generator
npm install @samnoh/react-gen``bash`
npm install -g @samnoh/react-gen
- Create a class-based 'Button' jsx component in the '/src' directory
`bash`
reactgen -o /src -n Button -c
- Create a functional 'AuthTemplate' tsx component in the default directory
`bash`
reactgen -n AuthTemplate -t
- Create a functional 'NavBar' jsx component in the default directory using your own template, Template.js
`bash`
reactgen -T Template.js -n NavBar
- You can set default values in package.jsontemplate
- configuration is used to set your own template variables
`json`
"config": {
"reactgen": {
"defaultName": "Component",
"baseDir": "src",
"modules": {
"styled": "styled-components",
"{ Link }": "react-router-dom"
},
"typescript": false,
"classBased": false,
"template": {
"LAZY": "React.lazy(() => import(''));",
"USEEFFECT": "useEffect(() => {}, []);"
}
}
}
- TEMPLATE_NAME and MODULES are preset template variables
`js
import React, { useEffect } from 'react';
import PageTemplate from 'components/PageTemplate';
MODULES
const = LAZY
const = LAZY
const TEMPLATE_NAME = () => {
USEEFFECT
return
};
export default TEMPLATE_NAME;
`
`bash`
reactgen -n SideBar -T /templates/test.js -o /components
- Result
`js
import React, { useEffect } from 'react';
import PageTemplate from 'components/PageTemplate';
import styled from 'styled-components';
import { Link } from 'react-router-dom';
const = React.lazy(() => import(''));
const = React.lazy(() => import(''));
const SideBar = () => {
useEffect(() => {}, []);
return
};
export default SideBar;
``