The fe-gui utility is designed to quickly create a project infrastructure using the following stack: (JavaScript or TypeScript) + React or Vue. Unlike other similar utilities, it does not use the command line, but a graphical interface.
The closest competitor to this utility is create-react-app.
Fe-gui does not create sandboxes like create-react-app does. All technologies are connected as if it were done by a person - dependencies are installed, the necessary files are added, appropriate changes are made to the configs, etc.
Fe-gui is not a library or dev-dependency of a project. It can be installed to create a project and set up its infrastructure. Then it can be removed. And even then reinstall. The utility does not leave any extra files in the project. It doesn't have any configs of its own. All information is taken from project files.
GIT is required for installation. For execution - Node.js. Thus, the utility is practically independent of the user's operating system.
The utility, of course, can be used by novice developers. However, professionals can benefit the most. They are well aware that the time spent on infrastructure development does not bring value to the business. On the other hand, a properly configured infrastructure can greatly improve development efficiency. Fe-gui allows you to make the necessary settings in just a few minutes.
Unfortunately, create-react-app has a number of shortcomings that forced us to create an alternative:
Advantages of fe-gui:
Fe-gui also has disadvantages:
We are already used to the fact that installation is usually done using npm. But here it is not so. Here you just need to copy the folder with the fe-gui code to the project folder. There are several installation options that don't really differ much from each other.
Most typical scenario:
md myProject
cd myProject
git clone https://github.com/Peter-Win/fe-gui
cd fe-gui
node start
Another possible scenario assumes the initial use of a version control system:
git clone repository-url/myProject
cd myProject
git clone https://github.com/Peter-Win/fe-gui
cd fe-gui
node start
However, even when using the first scenario, you can connect the project to the version control system using the Git addon.When creating a new project, the following options are used:
Addons are available after project creation. Some addons become available only under certain conditions.
Name | Conditions | Description |
---|---|---|
Antd | Used by React or Vue | Ant Design of React or Vue |
AntdLayout | Installed Antd | Application homepage layout generator using Ant Design |
AssetModules | Setting up Webpack to include additional resources. For example, images or fonts. | |
CSS | Ability to import styles from CSS files. | |
CssModules | Using modules for styles of different types: CSS, LESS, Sass. | |
ESLint | Linter, Prettier, and the ability to use an Airbnb preset. | |
Git | If not using GIT | Ability to connect the project to an external repository. |
Husky | Used by Git | Husky Ability to customize the functions performed by git hooks. For example, the author usually uses a test call and a linter before a commit. |
Jest | Jest unit testing | |
LESS | Less language extension for CSS | |
MobX | MobX state manager | |
Moment | Moment.js Parse, validate, manipulate, and display dates and times. | |
ReactComponent | React | Component source code generation. Allows you to reduce the time to create new components. Functionality depends on installed technologies: styles, Jest, MobX, ReactTestingLibrary, Storybook. |
ReactRouter | React | ReactRouter The most popular navigation system for React. |
ReactTestingLibrary | React and Jest | React Testing Library |
Sass | Sass Another popular style description language. | |
Standard | JavaScript only | JavaScript Standard Style. Alternative system for ESLint. |
Storybook | React | Storybook A tool for building UI components |
TypeCheck | TypeScript language but transpiler is not TypeScript | A useful feature for type checking when using Babel or SWC transpiler. |