mirror of
https://github.com/usememos/memos.git
synced 2025-04-26 07:08:50 +02:00
chore: update pnpm scripts (#2350)
* chore: update pnpm scripts * chore: update development guide
This commit is contained in:
parent
b938c8d7b6
commit
dfaf2ee29c
10
.github/workflows/frontend-tests.yml
vendored
10
.github/workflows/frontend-tests.yml
vendored
@ -15,9 +15,6 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: bufbuild/buf-setup-action@v1
|
|
||||||
- run: buf generate
|
|
||||||
working-directory: proto
|
|
||||||
- uses: pnpm/action-setup@v2.2.4
|
- uses: pnpm/action-setup@v2.2.4
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
@ -28,6 +25,8 @@ jobs:
|
|||||||
cache-dependency-path: "web/pnpm-lock.yaml"
|
cache-dependency-path: "web/pnpm-lock.yaml"
|
||||||
- run: pnpm install
|
- run: pnpm install
|
||||||
working-directory: web
|
working-directory: web
|
||||||
|
- run: pnpm type-gen
|
||||||
|
working-directory: web
|
||||||
- name: Run eslint check
|
- name: Run eslint check
|
||||||
run: pnpm lint
|
run: pnpm lint
|
||||||
working-directory: web
|
working-directory: web
|
||||||
@ -36,9 +35,6 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: bufbuild/buf-setup-action@v1
|
|
||||||
- run: buf generate
|
|
||||||
working-directory: proto
|
|
||||||
- uses: pnpm/action-setup@v2.2.4
|
- uses: pnpm/action-setup@v2.2.4
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
@ -49,6 +45,8 @@ jobs:
|
|||||||
cache-dependency-path: "web/pnpm-lock.yaml"
|
cache-dependency-path: "web/pnpm-lock.yaml"
|
||||||
- run: pnpm install
|
- run: pnpm install
|
||||||
working-directory: web
|
working-directory: web
|
||||||
|
- run: pnpm type-gen
|
||||||
|
working-directory: web
|
||||||
- name: Run frontend build
|
- name: Run frontend build
|
||||||
run: pnpm build
|
run: pnpm build
|
||||||
working-directory: web
|
working-directory: web
|
||||||
|
20
Dockerfile
20
Dockerfile
@ -1,24 +1,12 @@
|
|||||||
# Build protobuf.
|
|
||||||
FROM golang:1.21-alpine AS protobuf
|
|
||||||
WORKDIR /protobuf-generate
|
|
||||||
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
RUN GO111MODULE=on GOBIN=/usr/local/bin go install github.com/bufbuild/buf/cmd/buf@v1.26.1
|
|
||||||
|
|
||||||
WORKDIR /protobuf-generate/proto
|
|
||||||
|
|
||||||
RUN buf generate
|
|
||||||
|
|
||||||
# Build frontend dist.
|
# Build frontend dist.
|
||||||
FROM node:18-alpine AS frontend
|
FROM node:18-alpine AS frontend
|
||||||
WORKDIR /frontend-build
|
WORKDIR /frontend-build
|
||||||
|
|
||||||
COPY ./web .
|
COPY . .
|
||||||
|
|
||||||
COPY --from=protobuf /protobuf-generate/web/src/types/proto ./src/types/proto
|
WORKDIR /frontend-build/web
|
||||||
|
|
||||||
RUN corepack enable && pnpm i --frozen-lockfile
|
RUN corepack enable && pnpm i --frozen-lockfile && pnpm type-gen
|
||||||
|
|
||||||
RUN pnpm build
|
RUN pnpm build
|
||||||
|
|
||||||
@ -27,7 +15,7 @@ FROM golang:1.21-alpine AS backend
|
|||||||
WORKDIR /backend-build
|
WORKDIR /backend-build
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
COPY --from=frontend /frontend-build/dist ./server/dist
|
COPY --from=frontend /frontend-build/web/dist ./server/dist
|
||||||
|
|
||||||
RUN CGO_ENABLED=0 go build -o memos ./main.go
|
RUN CGO_ENABLED=0 go build -o memos ./main.go
|
||||||
|
|
||||||
|
@ -10,34 +10,33 @@ Memos is built with a curated tech stack. It is optimized for developer experien
|
|||||||
|
|
||||||
- [Go](https://golang.org/doc/install)
|
- [Go](https://golang.org/doc/install)
|
||||||
- [Air](https://github.com/cosmtrek/air#installation) for backend live reload
|
- [Air](https://github.com/cosmtrek/air#installation) for backend live reload
|
||||||
- [Buf](https://buf.build/docs/installation)
|
|
||||||
- [Node.js](https://nodejs.org/)
|
- [Node.js](https://nodejs.org/)
|
||||||
- [pnpm](https://pnpm.io/installation)
|
- [pnpm](https://pnpm.io/installation)
|
||||||
|
|
||||||
## Steps
|
## Steps
|
||||||
|
|
||||||
1. pull source code
|
1. Pull the source code
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/usememos/memos
|
git clone https://github.com/usememos/memos
|
||||||
```
|
```
|
||||||
|
|
||||||
2. start backend using air(with live reload)
|
2. Start backend server with `air`(with live reload)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
air -c scripts/.air.toml
|
air -c scripts/.air.toml
|
||||||
```
|
```
|
||||||
|
|
||||||
3. generate TypeScript code from protobuf with `buf`
|
3. Install frontend dependencies and generate TypeScript code from protobuf
|
||||||
|
|
||||||
```
|
```
|
||||||
cd proto && buf generate
|
cd web && pnpm i && pnpm type-gen
|
||||||
```
|
```
|
||||||
|
|
||||||
4. start frontend dev server
|
4. Start the dev server of frontend
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd web && pnpm i && pnpm dev
|
cd web && pnpm dev
|
||||||
```
|
```
|
||||||
|
|
||||||
Memos should now be running at [http://localhost:3001](http://localhost:3001) and change either frontend or backend code would trigger live reload.
|
Memos should now be running at [http://localhost:3001](http://localhost:3001) and change either frontend or backend code would trigger live reload.
|
||||||
|
@ -3,8 +3,10 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
"build": "tsc && vite build",
|
"build": "tsc && vite build",
|
||||||
"lint": "tsc && eslint --ext .js,.ts,.tsx, src",
|
"lint": "eslint --ext .js,.ts,.tsx, src",
|
||||||
"lint-fix": "eslint --ext .js,.ts,.tsx, src --fix"
|
"lint-fix": "eslint --ext .js,.ts,.tsx, src --fix",
|
||||||
|
"type-gen": "cd ../proto && buf generate",
|
||||||
|
"type-check": "tsc"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@8.7.0",
|
"packageManager": "pnpm@8.7.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -40,6 +42,7 @@
|
|||||||
"zustand": "4.4.1"
|
"zustand": "4.4.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@bufbuild/buf": "^1.27.0",
|
||||||
"@trivago/prettier-plugin-sort-imports": "^3.4.0",
|
"@trivago/prettier-plugin-sort-imports": "^3.4.0",
|
||||||
"@types/katex": "^0.16.3",
|
"@types/katex": "^0.16.3",
|
||||||
"@types/lodash-es": "^4.17.9",
|
"@types/lodash-es": "^4.17.9",
|
||||||
|
71
web/pnpm-lock.yaml
generated
71
web/pnpm-lock.yaml
generated
@ -97,6 +97,9 @@ dependencies:
|
|||||||
version: 4.4.1(@types/react@18.2.25)(react@18.2.0)
|
version: 4.4.1(@types/react@18.2.25)(react@18.2.0)
|
||||||
|
|
||||||
devDependencies:
|
devDependencies:
|
||||||
|
'@bufbuild/buf':
|
||||||
|
specifier: ^1.27.0
|
||||||
|
version: 1.27.0
|
||||||
'@trivago/prettier-plugin-sort-imports':
|
'@trivago/prettier-plugin-sort-imports':
|
||||||
specifier: ^3.4.0
|
specifier: ^3.4.0
|
||||||
version: 3.4.0(prettier@2.6.2)
|
version: 3.4.0(prettier@2.6.2)
|
||||||
@ -425,6 +428,74 @@ packages:
|
|||||||
'@babel/helper-validator-identifier': 7.22.20
|
'@babel/helper-validator-identifier': 7.22.20
|
||||||
to-fast-properties: 2.0.0
|
to-fast-properties: 2.0.0
|
||||||
|
|
||||||
|
/@bufbuild/buf-darwin-arm64@1.27.0:
|
||||||
|
resolution: {integrity: sha512-Bsdo9BkkIlIgBpQJ2jyIXl9ggSqDdSJ12euxgU1y4pbT5iD11mdiUA7eq5/ssxLJilUrUGj2Gk1h1KbYG/JfVA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [darwin]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/@bufbuild/buf-darwin-x64@1.27.0:
|
||||||
|
resolution: {integrity: sha512-aJmSZvO6uNxHST8+kN5cukv7/ZLgDnvklp+r6uyokocg5sk1rgWQVBqiVtGmoDWwPbotpMhb3EuqtwN9hdNrOg==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [darwin]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/@bufbuild/buf-linux-aarch64@1.27.0:
|
||||||
|
resolution: {integrity: sha512-1NPHARYENNVWOK3bQxbnYsMLU09em4/kdyAnCwyGkNhr+pWUlWdCBu3X5tdrRW+mnhjeagIcomTMhgVjxIAS7g==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/@bufbuild/buf-linux-x64@1.27.0:
|
||||||
|
resolution: {integrity: sha512-3LMTSJlwJAeOfjPuB0NBK+1Yfg1Bybadt+c1X/vF8XSXut1u0Ju1/fbRDz75BF4AlMidMQPdGS+vPWmPcb51hA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/@bufbuild/buf-win32-arm64@1.27.0:
|
||||||
|
resolution: {integrity: sha512-Za5d3obNvSfLZAlQW8IAWtv1Yv0gQTFDVMPyYiOh70rKIfKIxrWZxT4E4nzFLZZ54VQDFoUl81bAjOYLOgaspQ==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [win32]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/@bufbuild/buf-win32-x64@1.27.0:
|
||||||
|
resolution: {integrity: sha512-OzVK4Fz162Z6fFHAAZhHPW2GiCXjweCG/hwjOtFt2gza1t3ImYp0CwxJI6ePGY+th3Y9yu8rY0iHiI59ezMa4Q==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [win32]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/@bufbuild/buf@1.27.0:
|
||||||
|
resolution: {integrity: sha512-vR/ke6gUNgGSC3z7WkHLcbO+ur+zvGTC4ohHsLo2dZqEWysWySjNpcU70SKdIN3G5M4fSS1ki6MkZPes3E+83w==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
hasBin: true
|
||||||
|
requiresBuild: true
|
||||||
|
optionalDependencies:
|
||||||
|
'@bufbuild/buf-darwin-arm64': 1.27.0
|
||||||
|
'@bufbuild/buf-darwin-x64': 1.27.0
|
||||||
|
'@bufbuild/buf-linux-aarch64': 1.27.0
|
||||||
|
'@bufbuild/buf-linux-x64': 1.27.0
|
||||||
|
'@bufbuild/buf-win32-arm64': 1.27.0
|
||||||
|
'@bufbuild/buf-win32-x64': 1.27.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@emotion/babel-plugin@11.11.0:
|
/@emotion/babel-plugin@11.11.0:
|
||||||
resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==}
|
resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user