# 微信小程序审核优化方案

## 一、问题分析

### 1.1 审核未通过项

| 问题 | 说明 | 限制 |
|------|------|------|
| 主包尺寸 | 主包体积超过限制 | ≤ 2MB |
| 组件按需注入 | 未启用组件按需注入 | 需要配置 |
| 图片音频资源 | 静态资源过大 | 建议使用 CDN |

---

## 二、优化方案

### 2.1 主包尺寸优化

#### 当前问题
主包包含了太多页面，需要进一步分包。

#### 解决方案：进一步分包

修改 `config/consumer/pages.json`：

```json
{
  "pages": [
    // 只保留最核心的页面在主包
    { "path": "pages/user/login" },
    { "path": "pages/main/index" }
  ],
  "subPackages": [
    {
      "root": "pagesub/user",
      "pages": [
        { "path": "register" },
        { "path": "forgot-password" },
        { "path": "profile" },
        { "path": "center" }
      ]
    },
    {
      "root": "pagesub/main",
      "pages": [
        { "path": "category" },
        { "path": "cart" },
        { "path": "profile" }
      ]
    },
    {
      "root": "pages/mall/consumer",
      "pages": [
        // 消费者端所有页面
      ]
    }
  ]
}
```

### 2.2 启用组件按需注入

修改 `config/consumer/pages.json`，添加：

```json
{
  "easycom": {
    "autoscan": true,
    "custom": {
      "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
    }
  },
  "optimization": {
    "subPackages": true
  }
}
```

修改 `config/consumer/manifest.json`：

```json
{
  "mp-weixin": {
    "appid": "",
    "setting": {
      "urlCheck": false,
      "es6": true,
      "postcss": true,
      "minified": true,
      "enhance": true
    },
    "usingComponents": true,
    "optimization": {
      "subPackages": true
    },
    "lazyCodeLoading": "requiredComponents"
  }
}
```

### 2.3 图片资源优化

#### 方案 A：使用 CDN 托管图片

1. 将 `static/` 目录下的图片上传到 CDN
2. 代码中使用 CDN 链接

```javascript
// 修改前
<image src="/static/images/default-product.png" />

// 修改后
<image src="https://cdn.your-domain.com/images/default-product.png" />
```

#### 方案 B：压缩图片

使用工具压缩图片：
- TinyPNG: https://tinypng.com/
- 智图: https://zhitu.isux.us/

#### 方案 C：使用 WebP 格式

微信小程序支持 WebP 格式，体积更小。

---

## 三、具体修改

### 3.1 修改 manifest.json

```json
{
  "mp-weixin": {
    "appid": "",
    "setting": {
      "urlCheck": false,
      "es6": true,
      "postcss": true,
      "minified": true,
      "enhance": true
    },
    "usingComponents": true,
    "optimization": {
      "subPackages": true
    },
    "lazyCodeLoading": "requiredComponents"
  }
}
```

### 3.2 修改 pages.json

添加优化配置：

```json
{
  "optimization": {
    "subPackages": true
  }
}
```

---

## 四、优化检查清单

### 4.1 主包优化
- [ ] 只保留登录页和首页在主包
- [ ] 其他页面移到分包
- [ ] 检查主包体积 < 2MB

### 4.2 组件优化
- [ ] 启用 `lazyCodeLoading`
- [ ] 启用 `enhance`
- [ ] 检查组件按需加载

### 4.3 资源优化
- [ ] 图片使用 CDN
- [ ] 压缩图片
- [ ] 移除未使用的资源

---

## 五、快速修复

### 5.1 修改 manifest.json（启用组件按需注入）

在 `mp-weixin` 配置中添加：
```json
"lazyCodeLoading": "requiredComponents"
```

### 5.2 图片优化

1. 删除未使用的图片
2. 压缩现有图片
3. 考虑使用 CDN

---

## 六、预期效果

| 优化项 | 优化前 | 优化后 |
|--------|--------|--------|
| 主包体积 | 可能 > 2MB | < 1.5MB |
| 组件加载 | 全量加载 | 按需加载 |
| 图片资源 | 本地存储 | CDN 托管 |

---

## 七、注意事项

1. 分包后页面路径会变化，需要更新跳转逻辑
2. CDN 图片需要确保域名已备案
3. 测试分包后功能是否正常
