mirror of
				https://github.com/usememos/memos.git
				synced 2025-10-31 16:59:30 +08:00 
			
		
		
		
	chore: update pnpm scripts (#2350)
* chore: update pnpm scripts * chore: update development guide
This commit is contained in:
		
							parent
							
								
									b938c8d7b6
								
							
						
					
					
						commit
						dfaf2ee29c
					
				
					 5 changed files with 90 additions and 31 deletions
				
			
		
							
								
								
									
										10
									
								
								.github/workflows/frontend-tests.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/frontend-tests.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -15,9 +15,6 @@ jobs: | |||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: bufbuild/buf-setup-action@v1 | ||||
|       - run: buf generate | ||||
|         working-directory: proto | ||||
|       - uses: pnpm/action-setup@v2.2.4 | ||||
|         with: | ||||
|           version: 8 | ||||
|  | @ -28,6 +25,8 @@ jobs: | |||
|           cache-dependency-path: "web/pnpm-lock.yaml" | ||||
|       - run: pnpm install | ||||
|         working-directory: web | ||||
|       - run: pnpm type-gen | ||||
|         working-directory: web | ||||
|       - name: Run eslint check | ||||
|         run: pnpm lint | ||||
|         working-directory: web | ||||
|  | @ -36,9 +35,6 @@ jobs: | |||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: bufbuild/buf-setup-action@v1 | ||||
|       - run: buf generate | ||||
|         working-directory: proto | ||||
|       - uses: pnpm/action-setup@v2.2.4 | ||||
|         with: | ||||
|           version: 8 | ||||
|  | @ -49,6 +45,8 @@ jobs: | |||
|           cache-dependency-path: "web/pnpm-lock.yaml" | ||||
|       - run: pnpm install | ||||
|         working-directory: web | ||||
|       - run: pnpm type-gen | ||||
|         working-directory: web | ||||
|       - name: Run frontend build | ||||
|         run: pnpm build | ||||
|         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. | ||||
| FROM node:18-alpine AS frontend | ||||
| 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 | ||||
| 
 | ||||
|  | @ -27,7 +15,7 @@ FROM golang:1.21-alpine AS backend | |||
| WORKDIR /backend-build | ||||
| 
 | ||||
| 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 | ||||
| 
 | ||||
|  |  | |||
|  | @ -10,34 +10,33 @@ Memos is built with a curated tech stack. It is optimized for developer experien | |||
| 
 | ||||
| - [Go](https://golang.org/doc/install) | ||||
| - [Air](https://github.com/cosmtrek/air#installation) for backend live reload | ||||
| - [Buf](https://buf.build/docs/installation) | ||||
| - [Node.js](https://nodejs.org/) | ||||
| - [pnpm](https://pnpm.io/installation) | ||||
| 
 | ||||
| ## Steps | ||||
| 
 | ||||
| 1. pull source code | ||||
| 1. Pull the source code | ||||
| 
 | ||||
|    ```bash | ||||
|    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 | ||||
|    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 | ||||
|    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. | ||||
|  |  | |||
|  | @ -3,8 +3,10 @@ | |||
|   "scripts": { | ||||
|     "dev": "vite", | ||||
|     "build": "tsc && vite build", | ||||
|     "lint": "tsc && eslint --ext .js,.ts,.tsx, src", | ||||
|     "lint-fix": "eslint --ext .js,.ts,.tsx, src --fix" | ||||
|     "lint": "eslint --ext .js,.ts,.tsx, src", | ||||
|     "lint-fix": "eslint --ext .js,.ts,.tsx, src --fix", | ||||
|     "type-gen": "cd ../proto && buf generate", | ||||
|     "type-check": "tsc" | ||||
|   }, | ||||
|   "packageManager": "pnpm@8.7.0", | ||||
|   "dependencies": { | ||||
|  | @ -40,6 +42,7 @@ | |||
|     "zustand": "4.4.1" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@bufbuild/buf": "^1.27.0", | ||||
|     "@trivago/prettier-plugin-sort-imports": "^3.4.0", | ||||
|     "@types/katex": "^0.16.3", | ||||
|     "@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) | ||||
| 
 | ||||
| devDependencies: | ||||
|   '@bufbuild/buf': | ||||
|     specifier: ^1.27.0 | ||||
|     version: 1.27.0 | ||||
|   '@trivago/prettier-plugin-sort-imports': | ||||
|     specifier: ^3.4.0 | ||||
|     version: 3.4.0(prettier@2.6.2) | ||||
|  | @ -425,6 +428,74 @@ packages: | |||
|       '@babel/helper-validator-identifier': 7.22.20 | ||||
|       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: | ||||
|     resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} | ||||
|     dependencies: | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue