mirror of
https://github.com/usememos/memos.git
synced 2024-11-16 11:46:07 +08:00
90 lines
2.4 KiB
Markdown
90 lines
2.4 KiB
Markdown
# Development in Windows
|
|
|
|
Memos is built with a curated tech stack. It is optimized for developer experience and is very easy to start working on the code:
|
|
|
|
1. It has no external dependency.
|
|
2. It requires zero config.
|
|
3. 1 command to start backend and 1 command to start frontend, both with live reload support.
|
|
|
|
## Tech Stack
|
|
|
|
| Frontend | Backend |
|
|
| ---------------------------------------- | --------------------------------- |
|
|
| [React](https://react.dev/) | [Go](https://go.dev/) |
|
|
| [Tailwind CSS](https://tailwindcss.com/) | [SQLite](https://www.sqlite.org/) |
|
|
| [Vite](https://vitejs.dev/) | |
|
|
| [pnpm](https://pnpm.io/) | |
|
|
|
|
## Prerequisites
|
|
|
|
- [Go](https://golang.org/doc/install)
|
|
- [Air](https://github.com/cosmtrek/air#installation) for backend live reload
|
|
- [Node.js](https://nodejs.org/)
|
|
- [pnpm](https://pnpm.io/installation)
|
|
|
|
## Steps
|
|
|
|
(Using PowerShell)
|
|
|
|
1. pull source code
|
|
|
|
```powershell
|
|
git clone https://github.com/usememos/memos
|
|
# or
|
|
gh repo clone usememos/memos
|
|
```
|
|
|
|
2. cd into the project root directory
|
|
|
|
```powershell
|
|
cd memos
|
|
```
|
|
|
|
3. start backend using air (with live reload)
|
|
|
|
```powershell
|
|
air -c .\scripts\.air-windows.toml
|
|
```
|
|
|
|
4. start frontend dev server
|
|
|
|
```powershell
|
|
cd web; pnpm i; pnpm dev
|
|
```
|
|
|
|
Memos should now be running at [http://localhost:3001](http://localhost:3001) and changing either frontend or backend code would trigger live reload.
|
|
|
|
## Building
|
|
|
|
Frontend must be built before backend. The built frontend must be placed in the backend ./server/frontend/dist directory. Otherwise, you will get a "No frontend embeded" error.
|
|
|
|
### Frontend
|
|
|
|
```powershell
|
|
Move-Item "./server/frontend/dist" "./server/frontend/dist.bak"
|
|
cd web; pnpm i --frozen-lockfile; pnpm build; cd ..;
|
|
Move-Item "./web/dist" "./server/" -Force
|
|
```
|
|
|
|
### Backend
|
|
|
|
```powershell
|
|
go build -o ./build/memos.exe ./bin/memos/main.go
|
|
```
|
|
|
|
## ❕ Notes
|
|
|
|
- Start development servers easier by running the provided `start.ps1` script.
|
|
This will start both backend and frontend in detached PowerShell windows:
|
|
|
|
```powershell
|
|
.\scripts\start.ps1
|
|
```
|
|
|
|
- Produce a local build easier using the provided `build.ps1` script to build both frontend and backend:
|
|
|
|
```powershell
|
|
.\scripts\build.ps1
|
|
```
|
|
|
|
This will produce a memos.exe file in the ./build directory.
|