You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Go编写WebAssembly网站如何编译适配gRPC Web协议?

Go环境编译gRPC Web JS库操作指南

前置准备

  • 本地已安装并启动Docker服务
  • 已完成.proto接口定义,统一存放在项目的proto目录下
  • Go开发环境已配置完成,可正常编译Go代码

编译操作

你找到的namely/docker-protoc镜像已经封装了protoc所有依赖插件,不需要手动安装protoc、gRPC Web插件等组件,直接挂载本地目录执行容器命令即可完成编译。
假设你的项目目录结构如下:

项目根目录
├─ proto/          # 存放所有.proto定义文件
│  └─ api.proto
└─ generated/      # 编译后JS文件输出目录,提前创建

在项目根目录下执行以下命令即可完成编译:
docker run -v $(pwd):/defs namely/protoc-all -f proto/api.proto -l web -o generated/

常用参数说明

  • -v $(pwd):/defs:将当前本地项目根目录挂载到容器的默认工作目录
  • -f:指定需要编译的proto文件相对路径
  • -l web:指定输出类型为gRPC Web的JS调用库
  • -o:指定编译产物的本地输出目录

可选配置

  • 若需要输出TypeScript类型声明,可在命令中添加--ts_out参数:
    docker run -v $(pwd):/defs namely/protoc-all -f proto/api.proto -l web --ts_out -o generated/
  • 若你的proto依赖第三方公共proto定义(如google官方的annotations.proto),可额外挂载依赖proto的本地目录到容器的include路径:
    docker run -v $(pwd):/defs -v 你的第三方proto根目录:/usr/include namely/protoc-all -f proto/api.proto -l web -o generated/

后续接入说明

  • 编译输出的JS文件可直接导入到Wasm项目的JS桥接层调用
  • Go后端侧可直接使用grpcweb包封装原生gRPC服务,无需额外部署反向代理即可直接响应浏览器端的gRPC Web请求

内容的提问来源于stack exchange,提问作者Lorenzo Tinfena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:24:02