Peter-Win / fe-gui

0 stars 0 forks source link

fe-gui

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:

Installation

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:

Another possible scenario assumes the initial use of a version control system:

Create a new project

When creating a new project, the following options are used:

List of addons in alphabetical order

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.