tmerclub-doc/生产环境搭建/mall4cloud-station生产环境搭建.md
2025-03-19 15:04:57 +08:00

145 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

> station自提点端目前只兼容h5
## 1. 安装nodejs + 淘宝npm镜像
[NodeJS](https://nodejs.org/) 项目要求最低 18.12.0,推荐 20.9.0
如果不了解怎么安装nodejs的可以参考 [菜鸟教程的nodejs相关](https://www.runoob.com/nodejs/nodejs-install-setup.html)
## 2. 安装依赖
项目要求使用 [pnpm](https://www.pnpm.cn/) 包管理工具
使用编辑器打开项目,在根目录执行以下命令安装依赖
```
pnpm install
```
如果不想使用 pnpm请删除 `package.json` 文件中 `pnpm` 相关内容后再进行安装
```json
{
"scripts" : {
"preinstall": "npx only-allow pnpm" // 删除此行
},
"engines": {
"pnpm": ">=7" // 删除此行
},
"pnpm": { // 删除此项
...
}
}
```
## 3.修改配置文件,连接后台
> 在本文件所在的目录下有个`yami-shop/nginx/conf.d` 文件夹里面有nginx的一些配置信息
修改 `.env.production` 连接后台。
- `VITE_APP_BASE_API` `mall4cloud-uniapp` 这个项目连接的是`api.jar`提供的接口
- `VITE_APP_RESOURCES_URL` : 当然他们还要访问七牛云 or 阿里云的图片,也是需要对应的域名地址
```bash
# 统一接口域名
VITE_APP_BASE_API = 'https://cloud-api-vue3.mall4j.com'
# 图片域名
VITE_APP_RESOURCES_URL = 'https://mall4j-minio-test.mall4j.com/mall4cloud'
# 腾讯地图key (WebServiceAPI) 用于IP定位 & 地址位置解析
VITE_APP_MAP_KEY = 'xxx'
```
## 4. 对不同项目的配置
uniapp项目是兼容多端的所以不同的端要有不同的配置
#### 4.1微信公众号
> h5会分为两种一种是在微信上打开的h5页面一种是在浏览器打开的h5页面。在微信打开的h5页面是需要公众号服务的其中的微信支付是jsapi支付。在手机浏览器打开的是h5支付属于不同的范畴。
在进行公众号打开页面的时候因为需要进行微信公众号支付还有微信公众号的登陆授权所以需要配置微信公众号的appid
修改`utils/config.js`
```javascript
// 这里的appid是公众号的appid不是小程序的appid也不是微信支付的appid
var mpAppId = 'wx42bbe857570c5b40'
```
## 5. 发行
#### 5.1 微信公众号or h5 发行
1. hbuilder开发工具上面的菜单选择`发行-> 网站-H5手机版`hbuilder打包完毕之后会有`导出h5成功路径为xxx`
2. 将步骤1中生成的文件夹中的文件压缩上传到服务器nginx指定好的目录(`/nginx/conf.d/cloud-h5.conf` ),解压
```nginx
location / {
# vue的 history 模式需要
try_files $uri $uri/ /;
# h5的路径存放到这里 /usr/share/nginx/html/cloud-station
# 1.如果是docker部署的nginx那么这个路径是docker里面的路径
# 服务器上的物理路径应该是 在docker-compose下的mall4j-nginx映射下 “./nginx/html:/usr/share/nginx/html” 也就是docker-compose的相对路径下的nginx/html文件夹
# 2. 如果是非docker部署就是服务器的物理路径
root /usr/share/nginx/html/cloud-station;
index index.html;
#### kill cache
# 这里要清除缓存,不然微信会缓存首页,如果首页更改了代码,用户不清除微信缓存是获取不到新代码的
add_header Last-Modified $date_gmt;
add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
if_modified_since off;
expires off;
etag off;
}
```
#### 部署到二级目录
假设部署在 station 目录,即访问的地址为 https://xxxx.xxx/station需要修改以下配置
1. src/manifest.json 配置文件中的 h5 配置
```json
{
"h5": {
"router": {
// 添加 base项设置为 '/目录名称/'
"base": '/station/'
}
}
}
```
2. nginx 配置
```nginx
location /station {
try_files $uri $uri/ /station/;
}
```