generated from Luis/nextjs-python-web-template
54 lines
1.5 KiB
Markdown
54 lines
1.5 KiB
Markdown
# Web UI
|
|
|
|
**Dependency Management**: We use the [Nix package manager](https://nixos.org/) to manage dependencies and ensure reproducibility, making your development process more robust.
|
|
|
|
The files in `src/api` are autogenerated from the openapi.json. The openapi.json comes from the backend, from fastapi which autogenerates the openapi.json file from the python code.
|
|
|
|
We then use orval to generate typescript files to `src/api`
|
|
|
|
## Build Development Web UI
|
|
|
|
To build the dev web ui with hotreloading
|
|
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
## Build release Web UI
|
|
|
|
To build the release version execute
|
|
|
|
```bash
|
|
nix build .#ui
|
|
```
|
|
|
|
you can find the output in your current working directory at a symlink called `result`
|
|
The actual web files served by the web server are located in
|
|
`result/lib/node_modules/clan-ui/out`
|
|
|
|
You can also build it directly in you dev environment. Notice however that this will clutter your directory. The out directory is directly in you working dir.
|
|
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
## Development environment
|
|
|
|
The development environment created by `nix develop` or automatically by `direnv` is located at [shell.nix](shell.nix). The `shellHook` variable executes bash code.
|
|
|
|
## Updating dependencies
|
|
|
|
After changing dependencies with
|
|
|
|
`npm <dep> i --package-lock-only`
|
|
|
|
Update floco dependencies:
|
|
|
|
`nix run github:aakropotkin/floco -- translate -pt -o ./nix/pdefs.nix`
|
|
|
|
The prettier tailwind class sorting is not yet working properly with our devShell integration.
|
|
|
|
To sort classnames manually:
|
|
|
|
`cd /clan-core/pkgs/ui/`
|