Files
trezor-suite/docs/misc/build.md
2025-05-05 13:51:36 +02:00

27 lines
1.8 KiB
Markdown

# Front-End Build
The front-end build of Suite is handled by Webpack configurations inside the `suite-build` package.
The folder structure is as follows:
- configs: Contains the Webpack configuration files. `base.webpack.config.ts` serves as a common base for all other configurations. The other files in this folder are project specific such as `web.webpack.config.ts` or `desktop.webpack.config.ts` for `suite-web` and `suite-desktop` respectively.
- plugins: Contains custom Webpack plugins.
- utils: Contains various utils for the build scripts.
These Webpack configurations are using TypeScript and use the `tsconfig.json` file at the root of the package. This is specified via the `TS_NODE_PROJECT` environment variable to avoid any issues regardless of the location where the command is run.
The following commands are available in this package (using `yarn run` at the root of the package or `yarn workspace @trezor/suite-build run` at the root of the project):
| Command | Description |
| --- | --- |
| dev:web | Runs a watch build of `suite-web` with development settings and serves it. |
| build:web | Builds a production build of `suite-web`. |
| dev:desktop | Runs a watch build of `suite-desktop` with development settings, serves it and runs the Electron wrapper. |
| build:desktop | Builds a production build of `suite-desktop`. |
| lint | Runs the linter on the package. |
| type-check | Runs the TypeScript checker on the package. |
| type-check:watch | Same as `type-check` but in watch mode. |
## Aliases
Aliases for imports (for example `@suite-utils/features`) are defined in the `tsconfig.json` file at the root of the project, in the `compilerOptions.paths` property. The values are processed at build time for the webpack configuration in order to properly resolve aliases.