mirror of
https://github.com/zadam/trilium.git
synced 2025-11-06 05:15:59 +01:00
1.3 KiB
Vendored
1.3 KiB
Vendored
Project Structure
As the application grew in complexity, we decided to switch to a monorepo based on pnpm. Our initial monorepo implementation used NX, but we've switched to pure pnpm workspaces and our own build scripts.
Project structure
The mono-repo is mainly structured in:
apps, representing runnable entry-points such as thedesktop, theserverbut also additional tooling.client, representing the front-end that is used both by the server and the desktop application.server, representing the Node.js / server version of the application.desktop, representing the Electron-based desktop application.
packages, containing dependencies used by one or moreapps.commons, containing shared code for all the apps.
Working with the project
For example to run the server instance:
pnpm server:start
Running and building
Each application has a number of tasks. Here's a non-exhaustive list of the tasks that are useful during development. See Building.
Managing dependencies across the mono-repo
We are using pnpm workspaces to manage the project structure. The workspace configuration is in pnpm-workspace.yaml at project level but it generally should not be modified.