216 lines
6.1 KiB
Markdown
216 lines
6.1 KiB
Markdown
# React Crafter
|
||
|
||
**React Crafter** is a CLI tool designed to quickly scaffold a modern React application with TypeScript, Ant Design, Sass, Webpack, and essential development tools like Husky and linters pre-configured. This tool simplifies the initial setup, allowing developers to start coding with best practices from the get-go.
|
||
|
||
## Features
|
||
|
||
- **React with TypeScript**: Automatically sets up a React project using TypeScript.
|
||
- **Ant Design Integration**: Includes Ant Design (antd) for UI components, fully integrated with your project.
|
||
- **Sass Support**: Configures Sass for better styling with variables, mixins, and more.
|
||
- **Webpack Configuration**: Custom Webpack setup for development and production builds.
|
||
- **Husky & Linters**: Pre-configured Git hooks with Husky, Commitlint, and Prettier to enforce code quality and style.
|
||
- **Atomic Design Structure**: Creates an atomic design folder structure to organize your components.
|
||
- **Redux Setup**: Sets up Redux with slices, middleware, and selectors for state management.
|
||
- **Test Suite**: Installs Jest and Playwright for comprehensive testing.
|
||
|
||
## Installation
|
||
|
||
First, install the CLI globally via npm:
|
||
|
||
```bash
|
||
npm install -g react-crafter
|
||
```
|
||
|
||
Or use it directly with npx (no installation required):
|
||
|
||
```bash
|
||
npx react-crafter <project-directory>
|
||
```
|
||
|
||
## Usage
|
||
|
||
To create a new React project, simply run:
|
||
|
||
```bash
|
||
npx react-crafter my-new-app
|
||
```
|
||
|
||
Replace `my-new-app` with the name of your project.
|
||
|
||
### Example:
|
||
|
||
```bash
|
||
npx react-crafter awesome-project
|
||
```
|
||
|
||
## Commands
|
||
|
||
Here’s a summary of the commands you can use after setting up your project:
|
||
|
||
1. **Start Development Server**:
|
||
|
||
```bash
|
||
npm start
|
||
```
|
||
|
||
Starts the development server with Webpack. The project is served using Webpack Dev Server with the configuration specified in `webpack.config.js`.
|
||
|
||
2. **Build for Production**:
|
||
|
||
```bash
|
||
npm run build
|
||
```
|
||
|
||
Builds the project for production. Webpack compiles the project and outputs the optimized bundle in the `/dist` directory.
|
||
|
||
3. **Run Tests**:
|
||
|
||
```bash
|
||
npm test
|
||
```
|
||
|
||
Placeholder for running tests. Currently, it does not run any tests but can be customized to run Jest or other test suites.
|
||
|
||
4. **Run Tests in Watch Mode**:
|
||
|
||
```bash
|
||
npm run test:dev
|
||
```
|
||
|
||
Runs tests in watch mode using React Scripts. Suitable for a test-driven development approach.
|
||
|
||
5. **Format Staged Files**:
|
||
|
||
```bash
|
||
npm run pretty-quick
|
||
```
|
||
|
||
Formats all staged files using Prettier. Ensures that code is consistently formatted before committing.
|
||
|
||
6. **Lint Entire Codebase**:
|
||
|
||
```bash
|
||
npm run lint:prettier
|
||
```
|
||
|
||
Checks the format of the entire codebase using a custom script. It can be used to ensure that all files adhere to Prettier’s formatting rules.
|
||
|
||
7. **Format Entire Codebase**:
|
||
|
||
```bash
|
||
npm run prettier
|
||
```
|
||
|
||
Formats the entire codebase using Prettier based on the configuration in `.prettierrc`.
|
||
|
||
8. **Format & Commit**:
|
||
|
||
```bash
|
||
npm run prettier:commit
|
||
```
|
||
|
||
Applies Prettier formatting to staged files before committing. Ensures that committed code is properly formatted.
|
||
|
||
9. **Eject Project**:
|
||
|
||
```bash
|
||
npm run eject
|
||
```
|
||
|
||
Ejects the project from Create React App. This command exposes the underlying configuration files for full control but cannot be undone.
|
||
|
||
10. **Prepare Husky**:
|
||
```bash
|
||
npm run prepare
|
||
```
|
||
Installs Husky hooks. This script is automatically run after dependencies are installed, setting up Git hooks for the project.
|
||
|
||
## Customization
|
||
|
||
React Crafter provides a base setup for React projects, but it is also customizable to fit your specific needs:
|
||
|
||
- **Pre-configured files**: Files like `prettier-commit.js`, `check-format.js`, and others are copied during setup.
|
||
- **Package.json customization**: The CLI updates `package.json` with custom scripts tailored to your project’s needs.
|
||
- **Atomic design structure**: The tool creates a folder structure based on atomic design principles to help organize components.
|
||
|
||
## Post-Setup Options
|
||
|
||
After the project is set up, you’ll be prompted to choose how to open the project:
|
||
|
||
- **Terminal**
|
||
- **VSCode**
|
||
- **Neovim**
|
||
- **None**
|
||
|
||
This feature ensures you can start working in your preferred environment immediately after setup.
|
||
|
||
## Contributing
|
||
|
||
We welcome contributions to React Crafter! If you have ideas, find bugs, or want to improve the project, please feel free to contribute. Here's how you can get involved:
|
||
|
||
### 1. Fork the Repository
|
||
|
||
Start by forking the repository to your own GitHub account:
|
||
|
||
1. Navigate to the [React Crafter GitHub repository](#).
|
||
2. Click the "Fork" button in the top right corner.
|
||
|
||
### 2. Clone Your Fork
|
||
|
||
Clone your forked repository to your local machine:
|
||
|
||
```bash
|
||
git clone https://github.com/your-username/react-crafter.git
|
||
cd react-crafter
|
||
```
|
||
|
||
### 3. Create a New Branch
|
||
|
||
Create a new branch for your feature or bug fix:
|
||
|
||
```bash
|
||
git checkout -b feature/your-feature-name
|
||
```
|
||
|
||
### 4. Make Changes
|
||
|
||
Make your changes or improvements in your new branch. Follow the existing code style and conventions.
|
||
|
||
### 5. Test Your Changes
|
||
|
||
Before submitting your changes, make sure everything works as expected:
|
||
|
||
```bash
|
||
npm run test
|
||
```
|
||
|
||
### 6. Commit and Push
|
||
|
||
Commit your changes with a descriptive commit message:
|
||
|
||
```bash
|
||
git add .
|
||
git commit -m "Add new feature: your-feature-name"
|
||
git push origin feature/your-feature-name
|
||
```
|
||
|
||
### 7. Create a Pull Request
|
||
|
||
Go to the original repository and click on the "Pull Requests" tab. Click "New Pull Request" and select your branch. Provide a description of your changes and submit the pull request.
|
||
|
||
### 8. Review Process
|
||
|
||
Your pull request will be reviewed by the maintainers. You may be asked to make additional changes or clarifications before your code is merged.
|
||
|
||
### 9. Celebrate 🎉
|
||
|
||
Once your pull request is merged, you’ve officially contributed to React Crafter! Thank you for your contribution.
|
||
|
||
### Code of Conduct
|
||
|
||
Please note that we have a [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [cargdev@gmail.com](mailto:cargdev@gmail.com).
|
||
|
||
## License
|
||
|
||
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|