ByteNoteByteNote

字节笔记本

2026年8月29日

wemall:Go 开源商城怎么本地跑起来

API中转
¥120

想自己搭一套带后台、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 走;路径写法注意一下,配置里的上传目录要用本机绝对路径。

克隆仓库

bash
git clone https://github.com/shen100/wemall.git
cd wemall

改配置文件

进入项目根目录,把开发配置复制成正式配置名:

bash
cp configuration.dev.json configuration.json

打开 configuration.json,找到 go.UploadImgDir,填成「本机 wemall 目录下的 upload/img」绝对路径。例如 Linux / macOS:

json
{
  "go": {
    "UploadImgDir": "/path/to/wemall/upload/img"
  }
}

Windows 则类似 C:\dev\src\wemall\upload\img。目录不存在就先建好,否则上传图片会失败。

微信小程序配置同样要改名:

bash
cd weixin/config
cp config.dev.js config.js

建库并导入 SQL

先在 MySQL 里建库(名字可自定,本地开发默认常用 wemall),再导入仓库自带脚本:

bash
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS wemall DEFAULT CHARSET utf8mb4;"
mysql -u root -p wemall < sql/wemall.sql

README 写明:本地开发默认库名 wemall、用户 root、密码 test1234。这是仓库给本地联调写的默认值,只适合本机,不要原样搬到公网或共享环境。账号密码都可以在 configuration.json 里改。

配 nginx 和 hosts

  1. nginx/dev.wemall.com.conf 拷到 nginx 的虚拟主机目录。
  2. nginx/server.keynginx/server.crt 放到本机某个固定目录,并在 conf 里改成真实路径。
  3. 在 hosts 里加一行:
127.0.0.1 dev.wemall.com
  1. 重载 nginx。浏览器访问时会碰到自签证书警告,本机开发点「继续访问」即可。

后台地址一般是:https://dev.wemall.com/admin

启动 Node 前端

bash
cd nodejs
npm install

安装慢或失败时,可换国内镜像再试:

bash
npm install --registry=https://registry.npmmirror.com

然后开两个终端:

bash
# 终端 1:Node 服务
npm start

# 终端 2:静态资源
npm run staticServ

启动 Go 后端

回到仓库根目录(确认已经是 configuration.json,不是还叫 configuration.dev.json):

bash
go run main.go

依赖主要是 Iris、GORM、uuid 等;旧版本 Iris(iris.v6)在新 Go 上可能要多折腾几下模块解析,遇到报错先核对 Go 版本和 GOPATH / modules 设置。

跑微信小程序

确认 weixin/config/config.js 已就位,用微信开发者工具打开 weixin 目录。接口域名指向本地 dev.wemall.com 时,开发者工具里通常要勾选不校验合法域名,才能连上本机 HTTPS。

目录大致怎么对应

路径作用
main.goGo 入口
configuration.dev.json开发配置模板,改名成 configuration.json 再用
controller / model / utils后端控制器、模型、工具
nodejsM 站 + 后台前端工程
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

分享: