chore: use git+https SDK dependency, drop proto codegen from prod build

This commit is contained in:
2026-08-17 14:13:57 +08:00
parent f93aa80510
commit 104f9d289e
4 changed files with 6 additions and 23 deletions
+2 -5
View File
@@ -12,12 +12,9 @@ No test, lint, typecheck, or build scripts exist. Verify by reading the code.
## Proto Codegen ## Proto Codegen
`src/gen/` contains gRPC stubs generated from `proto/yoresee_doc/v1/yoresee_doc.proto` (parent repo). This directory is **gitignored**. gRPC stubs come from the npm package `@yoresee-doc/sdk-node` (CommonJS/gRPC build), pinned to tag `v0.1.0` in `package.json` (`git+https://git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#v0.1.0`). No local codegen required.
- Dev: generated automatically by `deploy/script/gen_proto.sh` from the parent repo. `src/grpc/client.js` requires stubs from `@yoresee-doc/sdk-node/cjs/...` (note: `.js` extension required — the SDK root package is ESM).
- Prod: `Dockerfile.prod` generates stubs in a builder stage using `grpc-tools` and `protoc-gen-js`.
The file `src/grpc/client.js` imports from `../gen/yoresee_doc/v1/yoresee_doc_grpc_pb` — code will fail at startup if stubs are missing.
## Architecture ## Architecture
-14
View File
@@ -1,27 +1,13 @@
FROM node:20-alpine AS builder FROM node:20-alpine AS builder
RUN npm install -g grpc-tools protoc-gen-js
WORKDIR /app WORKDIR /app
COPY collab/package.json collab/package-lock.json* ./ COPY collab/package.json collab/package-lock.json* ./
RUN npm install RUN npm install
COPY proto ./proto
RUN mkdir -p gen && \
PROTOC="/usr/local/bin/grpc_tools_node_protoc" && \
GRPC_PLUGIN="/usr/local/bin/grpc_tools_node_protoc_plugin" && \
"$PROTOC" -I proto \
--plugin=protoc-gen-grpc="$GRPC_PLUGIN" \
--grpc_out=grpc_js:gen \
--js_out=import_style=commonjs,binary:gen \
proto/yoresee_doc/v1/yoresee_doc.proto
FROM node:20-alpine FROM node:20-alpine
WORKDIR /app WORKDIR /app
RUN mkdir -p src RUN mkdir -p src
COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/gen ./src/gen
COPY collab/. . COPY collab/. .
EXPOSE 1234 EXPOSE 1234
+2 -2
View File
@@ -10,7 +10,7 @@
"dependencies": { "dependencies": {
"@grpc/grpc-js": "^1.12.0", "@grpc/grpc-js": "^1.12.0",
"@grpc/proto-loader": "^0.7.13", "@grpc/proto-loader": "^0.7.13",
"@yoresee-doc/sdk-node": "git+ssh://git@git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#v0.1.0", "@yoresee-doc/sdk-node": "git+https://git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#v0.1.0",
"amqplib": "^0.10.9", "amqplib": "^0.10.9",
"google-protobuf": "^4.0.2", "google-protobuf": "^4.0.2",
"redis": "^4.6.0", "redis": "^4.6.0",
@@ -237,7 +237,7 @@
}, },
"node_modules/@yoresee-doc/sdk-node": { "node_modules/@yoresee-doc/sdk-node": {
"version": "0.1.0", "version": "0.1.0",
"resolved": "git+ssh://git@git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#d4ffd77e1c1a71ec2008b3daa07ff4e4e22f70c0", "resolved": "git+https://git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#d4ffd77e1c1a71ec2008b3daa07ff4e4e22f70c0",
"dependencies": { "dependencies": {
"@bufbuild/protobuf": "^1.10.0", "@bufbuild/protobuf": "^1.10.0",
"@connectrpc/connect": "^1.7.0", "@connectrpc/connect": "^1.7.0",
+1 -1
View File
@@ -10,7 +10,7 @@
"dependencies": { "dependencies": {
"@grpc/grpc-js": "^1.12.0", "@grpc/grpc-js": "^1.12.0",
"@grpc/proto-loader": "^0.7.13", "@grpc/proto-loader": "^0.7.13",
"@yoresee-doc/sdk-node": "git+ssh://git@git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#v0.1.0", "@yoresee-doc/sdk-node": "git+https://git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#v0.1.0",
"amqplib": "^0.10.9", "amqplib": "^0.10.9",
"google-protobuf": "^4.0.2", "google-protobuf": "^4.0.2",
"redis": "^4.6.0", "redis": "^4.6.0",