Skip to content

Latest commit

 

History

History
19 lines (10 loc) · 2.37 KB

what-to-learn.md

File metadata and controls

19 lines (10 loc) · 2.37 KB

What to learn

This file briefly summarizes technologies that are required to be able to contribute to this project. You can consider this file as brief instructions on the technologies used. Feel free to update the file if you think some significant knowledge is missing.


All source codes are in Typescript. It is a programming language that builds on JavaScript by adding types and type safety. You need to understand JavaScript first. Look at javascript.info, for example.

The project is split into the packages (see README.md). Each package is managed by npm package manager. Npm introduces the package.json file, that contains all the dependencies that the package uses. You can check them in advance, but it is sufficient to search the package once you find it is used in the code you are interested in.

The packages are built either with the Typescript compiler or some bundler like Vite or Webpack. Webpack and Vite use the Typescript compiler, but bundle all the files with images, CSS and other assets into fewer files. All compilers require configuration files that are located in the package root, and it is not necessary to understand them immediately, as well as the whole build process. Usually, npm run build builds the package, and npm run dev runs either the live server (in case of applications) or automatically rebuilds the package if the source changes.

Packages depend on each other. The dependency is managed by npm workspaces. Simply said, npm is aware that some packages are not in the npm registry but in a different directory.

By this point, you should be able to contribute to the project and compile it by yourself.

Each package is a little different. Always read its README.md file first. We use ESLint to keep an eye on our code style. See Code style for more information.

Applications use React, a library for building user interfaces. React is similar to Vue.js or Angular. React uses components to build the user interface. Each component has something like HTML that is rendered. If the data the component uses changes, React automatically re-renders the HTML.