字节笔记本
2026年8月29日
wemall:Go 开源商城怎么本地跑起来
想自己搭一套带后台、M 站和微信小程序的微商城,又不想从零拼栈,可以看 shen100/wemall。后端用 Go,Node.js 渲染前端,React 管后台,仓库里还带了小程序端,本地把依赖和数据库配好就能跑起来。
项目是什么
wemall 是一套偏教学向的开源微商城,技术栈大致是:
- 后端:Go + Iris + GORM,MySQL 存数据
- 前端 M 站:Vue / Vuex / Vue Router,UI 用 vux
- 后台管理:React / Redux / react-router-redux,UI 用 antd,图表走 echarts
- 微信小程序:仓库
weixin目录 - 入口:本机用 nginx 做 HTTPS,默认域名
dev.wemall.com
GitHub 上大约两千多星,许可证是 GPL。作者 README 里写过:近期主要精力在 golang123,wemall 会先暂停一段时间。所以把它当「本地能跑通的参考实现」更合适,别默认仓库还在高频维护。
环境准备
本地至少要有这些:
- Go(能 go run)
- Node.js + npm(前端和静态服务)
- MySQL(导入官方 SQL)
- nginx(本地 HTTPS 虚拟主机)
- 微信开发者工具(跑小程序时用)
Windows / macOS / Linux 都能跟 README 走;路径写法注意一下,配置里的上传目录要用本机绝对路径。
克隆仓库
git clone https://github.com/shen100/wemall.git
cd wemall改配置文件
进入项目根目录,把开发配置复制成正式配置名:
cp configuration.dev.json configuration.json打开 configuration.json,找到 go.UploadImgDir,填成「本机 wemall 目录下的 upload/img」绝对路径。例如 Linux / macOS:
{
"go": {
"UploadImgDir": "/path/to/wemall/upload/img"
}
}Windows 则类似 C:\dev\src\wemall\upload\img。目录不存在就先建好,否则上传图片会失败。
微信小程序配置同样要改名:
cd weixin/config
cp config.dev.js config.js建库并导入 SQL
先在 MySQL 里建库(名字可自定,本地开发默认常用 wemall),再导入仓库自带脚本:
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS wemall DEFAULT CHARSET utf8mb4;"
mysql -u root -p wemall < sql/wemall.sqlREADME 写明:本地开发默认库名 wemall、用户 root、密码 test1234。这是仓库给本地联调写的默认值,只适合本机,不要原样搬到公网或共享环境。账号密码都可以在 configuration.json 里改。
配 nginx 和 hosts
- 把
nginx/dev.wemall.com.conf拷到 nginx 的虚拟主机目录。 - 把
nginx/server.key和nginx/server.crt放到本机某个固定目录,并在 conf 里改成真实路径。 - 在 hosts 里加一行:
127.0.0.1 dev.wemall.com
- 重载 nginx。浏览器访问时会碰到自签证书警告,本机开发点「继续访问」即可。
后台地址一般是:https://dev.wemall.com/admin。
启动 Node 前端
cd nodejs
npm install安装慢或失败时,可换国内镜像再试:
npm install --registry=https://registry.npmmirror.com然后开两个终端:
# 终端 1:Node 服务
npm start
# 终端 2:静态资源
npm run staticServ启动 Go 后端
回到仓库根目录(确认已经是 configuration.json,不是还叫 configuration.dev.json):
go run main.go依赖主要是 Iris、GORM、uuid 等;旧版本 Iris(iris.v6)在新 Go 上可能要多折腾几下模块解析,遇到报错先核对 Go 版本和 GOPATH / modules 设置。
跑微信小程序
确认 weixin/config/config.js 已就位,用微信开发者工具打开 weixin 目录。接口域名指向本地 dev.wemall.com 时,开发者工具里通常要勾选不校验合法域名,才能连上本机 HTTPS。
目录大致怎么对应
| 路径 | 作用 |
|---|---|
main.go | Go 入口 |
configuration.dev.json | 开发配置模板,改名成 configuration.json 再用 |
controller / model / utils | 后端控制器、模型、工具 |
nodejs | M 站 + 后台前端工程 |
weixin | 微信小程序 |
nginx | 本地 HTTPS 配置和自签证书 |
sql/wemall.sql | 初始化库表与种子数据 |
docs | 文档 |
上手时的坑
- 依赖偏旧。 Vue / React / Iris / GORM 都是当年那一版,新 Node、新 Go 直接装可能报错,需要按报错降 Node、调 modules,或当历史参考读代码。
- 自签证书。
server.crt/server.key只为本地dev.wemall.com服务,浏览器和小程序都会报警,属预期。 - 维护状态。 作者把精力转到 golang123 后,wemall 更新变少;当学习 Go 商城分层、前后端联调、小程序对接的样板更合适。
- 默认数据库口令。
root/test1234只写在本地说明里,上线务必改掉,并限制外网访问。 - GPL。 二次分发或衍生作品要遵守 GPL 义务,商用前先看 LICENSE。
按上面顺序:配配置 → 导 SQL → nginx + hosts → Node 启动 / 静态服务 → Go 入口 → 小程序工具,本地链路就能串起来。细节和截图以官方仓库为准:shen100/wemall。