chore: use git+https SDK dependency, drop proto codegen from prod build
This commit is contained in:
@@ -12,12 +12,9 @@ No test, lint, typecheck, or build scripts exist. Verify by reading the code.
|
||||
|
||||
## 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.
|
||||
- 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.
|
||||
`src/grpc/client.js` requires stubs from `@yoresee-doc/sdk-node/cjs/...` (note: `.js` extension required — the SDK root package is ESM).
|
||||
|
||||
## Architecture
|
||||
|
||||
|
||||
+1
-15
@@ -1,29 +1,15 @@
|
||||
FROM node:20-alpine AS builder
|
||||
|
||||
RUN npm install -g grpc-tools protoc-gen-js
|
||||
|
||||
WORKDIR /app
|
||||
COPY collab/package.json collab/package-lock.json* ./
|
||||
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
|
||||
WORKDIR /app
|
||||
RUN mkdir -p src
|
||||
COPY --from=builder /app/node_modules ./node_modules
|
||||
COPY --from=builder /app/gen ./src/gen
|
||||
COPY collab/. .
|
||||
|
||||
EXPOSE 1234
|
||||
|
||||
CMD ["node", "server.js"]
|
||||
CMD ["node", "server.js"]
|
||||
|
||||
Generated
+2
-2
@@ -10,7 +10,7 @@
|
||||
"dependencies": {
|
||||
"@grpc/grpc-js": "^1.12.0",
|
||||
"@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",
|
||||
"google-protobuf": "^4.0.2",
|
||||
"redis": "^4.6.0",
|
||||
@@ -237,7 +237,7 @@
|
||||
},
|
||||
"node_modules/@yoresee-doc/sdk-node": {
|
||||
"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": {
|
||||
"@bufbuild/protobuf": "^1.10.0",
|
||||
"@connectrpc/connect": "^1.7.0",
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@
|
||||
"dependencies": {
|
||||
"@grpc/grpc-js": "^1.12.0",
|
||||
"@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",
|
||||
"google-protobuf": "^4.0.2",
|
||||
"redis": "^4.6.0",
|
||||
|
||||
Reference in New Issue
Block a user