npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

cy-element-ui

v1.1.28

Published

基于 Element UI 的 Vue 2 组件库,包含产研自定义组件

Downloads

909

Readme

cy-element-ui 组件开发指南

环境要求

| 工具 | 版本要求 | 说明 | |------|---------|------| | Node.js | >= 14.x(推荐 16.x) | 项目使用 webpack 4 + Babel 6,需 Node.js 支持 | | npm | >= 6.x | 包管理器,也可使用 yarn | | Git | 任意版本 | 用于版本管理和发布流程 | | Make | 可选 | Linux/macOS 原生支持;Windows 下可用 GowMinGW 或直接用 node build/bin/new-cy.js 替代 make 命令 |

Windows 用户注意:make new-cy xxx 可替换为 node build/bin/new-cy.js xxx,效果完全相同。


一、在项目中安装使用

1.1 安装依赖

# 使用 npm
npm install cy-element-ui --save

# 使用 yarn
yarn add cy-element-ui

# 使用淘宝镜像
npm install cy-element-ui --save --registry=https://registry.npmmirror.com

1.2 全局引入

// main.js
import Vue from 'vue';
import CyElementUI from 'cy-element-ui';
import 'cy-element-ui/lib/theme-chalk/index.css';

Vue.use(CyElementUI);

1.3 按需引入

方法一:手动引入

import Vue from 'vue';
import { CyTreeSelect, CyTabDialog, ElButton } from 'cy-element-ui';
import 'cy-element-ui/lib/theme-chalk/cy/treeSelect.css';
import 'cy-element-ui/lib/theme-chalk/cy/tabDialog.css';
import 'cy-element-ui/lib/theme-chalk/button.css';

Vue.use(CyTreeSelect);
Vue.use(CyTabDialog);
Vue.use(ElButton);

方法二:使用 babel-plugin-component

安装插件:

npm install babel-plugin-component --save-dev

配置 .babelrc

{
  "plugins": [
    ["component", {
      "libraryName": "cy-element-ui",
      "styleLibraryName": "theme-chalk"
    }]
  ]
}

使用:

import Vue from 'vue';
import { CyTreeSelect, CyTabDialog, ElButton } from 'cy-element-ui';

Vue.use(CyTreeSelect);
Vue.use(CyTabDialog);
Vue.use(ElButton);

1.4 使用示例

<template>
	<div class="app-container">
		<!-- 使用 Element UI 组件 -->
		<el-button type="primary">Element Button</el-button>
		
		<!-- 使用产研自定义组件 -->
		<cy-tree-select
			v-model="selectedIds"
			:data="treeData"
			placeholder="请选择"
		></cy-tree-select>
		
		<cy-tab-dialog
			title="标签对话框"
			:visible="dialogVisible"
			@close="dialogVisible = false"
		>
			<div slot="tab1">标签1内容</div>
			<div slot="tab2">标签2内容</div>
		</cy-tab-dialog>
	</div>
</template>

<script>
export default {
	name: 'App',
	data() {
		return {
			selectedIds: [],
			dialogVisible: false,
			treeData: [
				{
					id: '1',
					label: '一级节点',
					children: [
						{ id: '1-1', label: '二级节点' }
					]
				}
			]
		};
	}
};
</script>

二、项目架构

2.1 整体架构

chanyan-ui/                              # 项目根目录
├── build/                                # 构建工具目录
│   ├── bin/                              # 脚本命令
│   │   ├── build-entry.js                # 生成入口文件脚本
│   │   ├── gen-cy-types.js               # 生成cy组件类型定义
│   │   ├── new.js                        # 创建el组件脚本
│   │   └── new-cy.js                     # 创建cy组件脚本
│   ├── dist.js                           # 完整构建脚本(Node API方式,替代CLI)
│   ├── webpack.conf.js                   # UMD构建配置
│   ├── webpack.common.js                 # CommonJS构建配置
│   ├── webpack.component.js              # 组件单独构建配置
│   └── webpack.demo.js                   # 示例站点构建配置
├── examples/                             # 示例文档站点
│   ├── docs/                             # 文档内容
│   │   └── zh-CN/                        # 中文文档
│   │       └── cy/                       # 产研组件文档
│   ├── pages/zh-CN/                      # 页面容器
│   │   ├── component.vue                 # 组件页容器(Element UI组件+开发指南等)
│   │   ├── independent.vue               # 独立菜单通用容器(如产研)
│   │   └── index.vue                     # 首页
│   ├── nav.config.json                   # 导航配置
│   └── route.config.js                   # 路由配置(自动识别独立菜单标记)
├── packages/                             # 组件源码目录
│   ├── cy/                               # 产研自定义组件
│   │   ├── treeSelect/                   # 树形选择器
│   │   ├── tabDialog/                    # 标签对话框
│   │   ├── subTitle/                     # 副标题
│   │   └── selectDisplayInput/           # 选择显示输入框
│   └── theme-chalk/                      # 主题样式源码
│       └── src/                          # SCSS源码
│           └── cy/                       # cy组件样式
├── src/                                  # 核心源码
│   └── index.js                          # 组件库主入口(自动生成)
├── types/                                # 类型定义
│   └── cy/                               # cy组件类型定义
├── components.json                       # 组件配置清单
└── Makefile                              # 命令脚本

2.2 目录职责说明

| 目录层级 | 目录路径 | 职责 | 详细说明 | |----------|----------|------|----------| | 一级 | build/ | 构建工具 | 包含所有构建脚本和webpack配置文件 | | 二级 | build/bin/ | 命令脚本 | new.js创建el组件,new-cy.js创建cy组件 | | 二级 | build/dist.js | 完整构建脚本 | 统一管理完整构建流程(替代CLI方式) | | 一级 | examples/ | 示例站点 | 组件展示文档和示例代码 | | 二级 | examples/docs/zh-CN/cy/ | 产研组件文档 | cy组件的中文文档目录 | | 二级 | examples/pages/zh-CN/ | 页面容器 | component.vue(组件页)、independent.vue(独立菜单通用容器) | | 一级 | packages/ | 组件源码 | 所有el和cy组件的源代码 | | 二级 | packages/cy/ | 产研组件 | 自定义的cy-*组件,独立目录管理 | | 三级 | packages/cy/treeSelect/ | 树形选择器 | CyTreeSelect组件源码 | | 二级 | packages/theme-chalk/src/cy/ | cy样式 | 产研组件的SCSS样式文件 | | 一级 | src/ | 核心入口 | 自动生成的组件注册入口文件 | | 一级 | types/cy/ | 类型定义 | cy组件的TypeScript类型定义 |

2.3 组件结构规范

产研自定义组件结构(cy组件):

packages/
└── cy/                        # cy组件根目录
    ├── treeSelect/            # 组件目录(驼峰式)
    │   ├── index.js           # 组件导出文件
    │   └── src/               # 源码目录
    │       └── main.vue       # 主组件文件(必须)
    ├── tabDialog/
    ├── subTitle/
    └── selectDisplayInput/

组件目录命名规则:

  • cy组件:驼峰式(如 treeSelect

三、创建新组件

3.1 创建 cy 组件(产研自定义)

使用 Makefile 命令创建组件:

make new-cy <component-name> [中文名]

示例:

make new-cy advancedSelect 高级选择器

执行该命令后自动完成以下操作:

3.1.1 自动创建的文件

| 文件路径 | 说明 | 是否必须修改 | |----------|------|-------------| | packages/cy/advancedSelect/index.js | 组件导出文件 | 否(自动生成) | | packages/cy/advancedSelect/src/main.vue | 组件实现文件 | 是(必须编写逻辑) | | examples/docs/zh-CN/cy/advancedSelect.md | 中文文档文件 | 是(必须编写文档) | | packages/theme-chalk/src/cy/advancedSelect.scss | 组件样式文件 | 是(必须编写样式) | | examples/demo-styles/cy/advancedSelect.scss | 示例页面样式文件 | 否(可选) | | types/cy/advancedSelect.d.ts | 类型定义文件(不带 cy- 前缀) | 否(自动生成) |

3.1.2 自动修改的文件

| 文件路径 | 修改内容 | 说明 | |----------|---------|------| | packages/theme-chalk/src/cy/index.scss | 添加 @import "./advancedSelect.scss"; | 引入组件样式到主题 | | examples/demo-styles/cy/index.scss | 添加 @import "./advancedSelect.scss"; | 引入组件样式到示例 | | components.json | 添加组件配置项 | 注册组件到构建系统 | | examples/nav.config.json | 添加导航菜单项 | 注册组件到文档导航 |

3.1.3 开发人员需要完成的工作

| 步骤 | 工作内容 | 文件 | 优先级 | |------|---------|------|--------| | 1 | 编写组件逻辑和模板 | packages/cy/advancedSelect/src/main.vue | 高 | | 2 | 编写组件样式 | packages/theme-chalk/src/cy/advancedSelect.scss | 高 | | 3 | 编写组件文档 | examples/docs/zh-CN/cy/advancedSelect.md | 高 | | 4 | 重新生成入口 | npm run build:file | 必须 |

3.1.4 生成的文件内容示例

packages/cy/advancedSelect/index.js

import CyAdvancedSelect from './src/main';

/* istanbul ignore next */
CyAdvancedSelect.install = function(Vue) {
	Vue.component(CyAdvancedSelect.name, CyAdvancedSelect);
};

export default CyAdvancedSelect;

packages/cy/advancedSelect/src/main.vue

<template>
	<div class="cy-advanced-select"></div>
</template>

<script>
export default {
	name: 'CyAdvancedSelect'
};
</script>

3.2 创建 el 组件(Element UI 风格)

使用 Makefile 命令创建组件:

make new <component-name> [中文名]

示例:

make new custom-button 自定义按钮

执行该命令后自动完成以下操作:

3.2.1 自动创建的文件

| 文件路径 | 说明 | 是否必须修改 | |----------|------|-------------| | packages/custom-button/index.js | 组件导出文件 | 否(自动生成) | | packages/custom-button/src/main.vue | 组件实现文件 | 是(必须编写逻辑) | | examples/docs/zh-CN/custom-button.md | 中文文档文件 | 是(必须编写文档) | | packages/theme-chalk/src/custom-button.scss | 组件样式文件 | 是(必须编写样式) | | examples/demo-styles/custom-button.scss | 示例页面样式文件 | 否(可选) |

3.2.2 自动修改的文件

| 文件路径 | 修改内容 | 说明 | |----------|---------|------| | packages/theme-chalk/src/index.scss | 添加 @import "./custom-button.scss"; | 引入组件样式到主题 | | examples/demo-styles/index.scss | 添加 @import "./custom-button.scss"; | 引入组件样式到示例 | | components.json | 添加组件配置项 | 注册组件到构建系统 |

3.2.3 开发人员需要完成的工作

| 步骤 | 工作内容 | 文件 | 优先级 | |------|---------|------|--------| | 1 | 编写组件逻辑和模板 | packages/custom-button/src/main.vue | 高 | | 2 | 编写组件样式 | packages/theme-chalk/src/custom-button.scss | 高 | | 3 | 编写组件文档 | examples/docs/zh-CN/custom-button.md | 高 | | 4 | 添加导航配置 | examples/nav.config.json | 高 | | 5 | 重新生成入口 | npm run build:file | 必须 |

3.3 组件配置文件详解

components.json

组件配置清单,定义所有需要打包的组件:

[
  { "name": "CyTreeSelect", "path": "./packages/cy/treeSelect/index.js" },
  { "name": "CyTabDialog", "path": "./packages/cy/tabDialog/index.js" },
  { "name": "CySubTitle", "path": "./packages/cy/subTitle/index.js" },
  { "name": "CySelectDisplayInput", "path": "./packages/cy/selectDisplayInput/index.js" },
  { "name": "Button", "path": "./packages/button/index.js" },
  { "name": "Input", "path": "./packages/input/index.js" }
]

字段说明:

  • name:组件名称(使用 PascalCase,cy组件以Cy开头,el组件首字母大写)
  • path:组件导出文件路径(相对于项目根目录)

自动生成入口文件

运行 npm run build:file 自动生成 src/index.js,包含:

  1. 所有组件的 import 语句
  2. 组件数组定义(components)
  3. install 函数(注册所有组件、指令、原型方法)
  4. 默认导出对象(包含版本号、install方法、所有组件)

3.4 组件命名规范

| 类型 | 前缀 | 命名方式 | 示例 | |------|------|---------|------| | Element UI 组件 | El | PascalCase | ElButton, ElInput | | 产研自定义组件 | Cy | PascalCase | CyTreeSelect, CyTabDialog | | 组件目录(el) | - | 小写连字符 | custom-button | | 组件目录(cy) | - | 驼峰式 | treeSelect | | 样式文件 | - | 小写连字符 | button.scss, tree-select.scss | | 文档文件 | - | 驼峰式 | treeSelect.md |


四、修改现有组件

4.1 修改组件代码

步骤 1:定位组件文件

# 修改 cy 组件
vi packages/cy/treeSelect/src/main.vue

# 修改 el 组件
vi packages/button/src/button.vue

步骤 2:修改组件逻辑

<script>
export default {
	name: 'CyTreeSelect',
	props: {
		// 添加或修改属性
		allowClear: {
			type: Boolean,
			default: false
		}
	},
	methods: {
		// 添加或修改方法
		clearSelection() {
			if (this.allowClear) {
				this.selectedValues = [];
				this.$emit('input', []);
			}
		}
	}
};
</script>

4.2 修改组件样式

// packages/theme-chalk/src/cy/treeSelect.scss
.cy-tree-select {
	// 添加新样式
	&__clear-btn {
		position: absolute;
		right: 30px;
		top: 50%;
		transform: translateY(-50%);
		cursor: pointer;
		color: #909399;
	}
}

4.3 更新组件文档

同步更新对应的文档文件,添加新属性和方法的说明。


五、编写组件文档

5.1 创建文档文件

中文文档路径:

examples/docs/zh-CN/cy/<component-name>.md

文档内容结构:

## CyAdvancedSelect 高级选择器

### 介绍

高级选择器组件,支持多选、搜索过滤、标签展示等功能。

### 基本用法

```html
<cy-advanced-select
  v-model="selectedValues"
  :options="options"
  placeholder="请选择"
></cy-advanced-select>
export default {
	data() {
		return {
			selectedValues: [],
			options: [
				{ value: '1', label: '选项1' },
				{ value: '2', label: '选项2' },
				{ value: '3', label: '选项3' }
			]
		};
	}
};

属性

| 属性 | 说明 | 类型 | 默认值 | |------|------|------|--------| | value / v-model | 选中值数组 | Array | [] | | options | 选项列表 | Array | [] | | placeholder | 占位提示 | String | '请选择' |

事件

| 事件名 | 说明 | 参数 | |--------|------|------| | input | 选中值变化时触发 | 选中的值数组 | | change | 选中值变化时触发 | 选中的选项对象数组 |


### 5.2 配置导航

修改 `examples/nav.config.json`:

> **注意**:产研等独立菜单使用 `independent` + `pathPrefix` 标记,路由会自动处理。详见 [九、新增独立菜单](#九新增独立菜单类似产研)。

**普通组件(添加到"组件"菜单下):**

在 `"name": "组件"` 的 groups 中找到对应分组,添加一项:

```json
{
  "path": "/advancedSelect",
  "title": "AdvancedSelect 高级选择器"
}

独立菜单(如"产研"):

{
  "name": "产研",
  "independent": true,
  "pathPrefix": "/cy",
  "groups": [
    {
      "groupName": "基础组件",
      "list": [
        { "path": "/cy/treeSelect",     "title": "TreeSelect 下拉树" },
        { "path": "/cy/tabDialog",      "title": "TabDialog 页签对话框" },
        { "path": "/cy/subTitle",       "title": "SubTitle 副标题" },
        { "path": "/cy/selectDisplayInput", "title": "SelectDisplayInput 选择显示输入框" }
      ]
    }
  ]
}

六、打包构建

6.1 完整构建

npm run dist

构建内容:

| 文件路径 | 说明 | |----------|------| | lib/index.js | UMD格式主入口 | | lib/element-ui.common.js | CommonJS格式入口 | | lib/theme-chalk/ | 主题样式目录 | | lib/[component].js | 各组件单独打包文件 |

6.2 分步构建

注意:当前 dist 命令已统一由 build/dist.js 管理(使用 webpack Node API),以下为内部流程说明。

完整构建(推荐):

npm run dist

该命令自动依次执行:

| 步骤 | 命令/操作 | 说明 | |------|----------|------| | 1 | npm run clean | 清理 lib 目录 | | 2 | npm run build:file | 自动生成 src/index.js 入口文件 | | 3 | eslint + lint | 代码质量检查 | | 4 | Webpack UMD | 打包 lib/index.js | | 5 | Webpack CommonJS | 打包 lib/element-ui.common.js | | 6 | Webpack Component | 各组件单独打包到 lib/ | | 7 | npm run build:utils | 构建工具函数 | | 8 | npm run build:umd | UMD 补充处理 | | 9 | npm run build:theme | 编译 SCSS 主题样式 |

手动单步执行(调试用):

# 清理
npm run clean

# 生成入口文件
npm run build:file

# 单独执行某一步webpack构建
npx webpack --config build/webpack.conf.js        # UMD
npx webpack --config build/webpack.common.js      # CommonJS
npx webpack --config build/webpack.component.js   # 组件单独打包

# 样式编译
npm run build:theme

6.3 内存不足问题处理

如果构建时出现内存不足错误(退出码 -1073741510),可以增加 Node.js 内存限制:

# 方式一:临时设置环境变量
$env:NODE_OPTIONS="--max-old-space-size=8192"
npm run dist

# 方式二:直接使用 node 命令
node --max-old-space-size=8192 node_modules/webpack/bin/webpack.js --config build/webpack.component.js

七、发布到 npm

7.1 更新版本号

# 升级补丁版本(1.1.3 → 1.1.4)
npm version patch

# 升级次要版本(1.1.3 → 1.2.0)
npm version minor

# 升级主要版本(1.1.3 → 2.0.0)
npm version major

7.2 登录 npm

npm login

7.3 发布

# 发布(scoped 包需要 --access public)
npm publish --access public

发布后在其他项目中更新:

# 清除缓存,确保拉取最新版
rmdir /s /q node_modules\cy-element-ui
npm cache clean --force
del package-lock.json
npm install cy-element-ui@latest

八、开发流程最佳实践

8.1 开发流程

1. 创建组件    → make new-cy <name> [中文名]
2. 编写代码    → 修改 packages/cy/<name>/src/main.vue
3. 编写样式    → 修改 packages/theme-chalk/src/cy/<name>.scss
4. 编写文档    → 修改 examples/docs/zh-CN/cy/<name>.md
5. 生成入口    → npm run build:file
6. 启动开发    → npm run dev
7. 完整构建    → npm run dist
8. 发布 npm    → npm publish

8.2 注意事项

  1. 不使用单元测试:本项目不编写单元测试,所有组件通过示例站点验证
  2. 类型定义:cy组件的类型定义文件不带 cy- 前缀,使用连字符命名(如 tree-select.d.ts
  3. 样式命名:使用 BEM 命名规范,cy组件样式类名以 cy- 开头
  4. 文档语言:仅提供中文文档,不提供其他语言版本
  5. async/await:项目支持 async/await(babel-preset-env + stage-2 自动转译)

九、新增独立菜单(类似产研)

9.1 概念说明

本项目支持在顶部导航栏中添加独立的菜单分类,与"组件"菜单完全隔离。例如现有的"产研"菜单就是一个独立菜单——它有自己的路由容器、侧边栏、文档目录,不会与"组件"页面混在一起。

9.2 工作原理

| 文件 | 作用 | |------|------| | examples/nav.config.json | 通过 independent: true + pathPrefix 标记独立菜单 | | examples/route.config.js | 自动识别标记,生成独立父路由 + 容器 | | examples/pages/zh-CN/independent.vue | 通用容器组件(自动过滤侧边栏数据) |

无需为每个独立菜单单独创建 vue 文件!

9.3 新增步骤详解

以新增一个名为"数据平台"、路径前缀 /dp 的独立菜单为例:

步骤 1:修改 nav.config.json

"zh-CN" 数组末尾添加一个新对象:

{
	"name": "数据平台",
	"independent": true,
	"pathPrefix": "/dp",
	"groups": [
		{
			"groupName": "基础组件",
			"list": [
				{
					"path": "/dp/dataTable",
					"title": "DataTable 数据表格"
				},
				{
					"path": "/dp/dataChart",
					"title": "DataChart 数据图表"
				}
			]
		}
	]
}

关键字段说明:

| 字段 | 是否必须 | 说明 | |------|---------|------| | name | 必须 | 导航栏显示名称,也是容器匹配的标识 | | independent | 必须 | 固定为 true,标记为独立菜单 | | pathPrefix | 必须 | URL 路径前缀,如 /dp → 最终路径 /zh-CN/dp/dataTable | | groups | 必须(或用 children) | 子项分组列表(与组件菜单结构一致) | | groups[].list[].path | 必须 | 必须以 pathPrefix 开头,如 /dp/dataTable |

步骤 2:创建文档文件

每个子组件需要对应的 md 文档:

examples/docs/zh-CN/
├── dp/                          # 新建目录(与 pathPrefix 对应)
│   ├── dataTable.md             # DataTable 组件文档
│   └── dataChart.md             # DataChart 组件文档
└── cy/                          # 已有的产研文档
    ├── treeSelect.md
    └── ...

文档格式参照 五、编写组件文档

步骤 3:创建组件源码(如果是有代码的新组件)

如果这个独立菜单下包含全新的自定义组件:

# 使用 Makefile 创建组件
make new-cy dataTable 数据表格
make new-cy dataChart 数据图表

这会自动创建:

  • packages/cy/dataTable/src/main.vue
  • packages/theme-chalk/src/cy/dataTable.scss
  • 并更新 components.json、样式 index.scss 等

如果只是引用已有组件做展示页,则不需要创建组件源码,只需写文档即可。

步骤 4:(可选)添加 i18n 翻译

如果导航栏文字需要国际化,修改 examples/i18n/component.json

[
  {
    "lang": "zh-CN",
    "header": {
      "guide": "指南",
      "components": "组件",
      "chanyan": "产研",
      "dataPlatform": "数据平台",     // ← 新增
      ...
    }
  }
]

然后修改 examples/components/header.vue 中的导航链接:

<li class="nav-item">
    <router-link :to="`/${ lang }/dp`">{{ langConfig.dataPlatform }}</router-link>
</li>

步骤 5:验证

# 启动开发服务器
npm run dev

访问 http://localhost:8086/#/zh-CN/dp,应能看到:

  1. 顶部导航栏新增"数据平台"入口
  2. 点击后进入独立页面,侧边栏只显示"基础组件"分组下的子项
  3. 点击子项能正常显示对应文档内容

9.4 路由生成规则

route.config.js 遇到 independent: true 的菜单时,自动执行以下操作:

输入:name="数据平台", pathPrefix="/dp"

自动生成的路由结构:
/zh-CN/dp                    (redirect → /zh-CN/dp/dataTable)
  ├── dataTable              → examples/docs/zh-CN/dp/dataTable.md
  └── dataChart              → examples/docs/zh-CN/dp/dataChart.md

与"产研"的路由完全平行:

/zh-CN/component            (component.vue 容器)
  ├── installation, button, ...   (Element UI 组件)

/zh-CN/cy                   (independent.vue 容器)
  ├── treeSelect, tabDialog, ... (产研组件)

/zh-CN/dp                   (independent.vue 容器)    ← 新增
  ├── dataTable, dataChart       (数据平台组件)

9.5 注意事项

  1. pathPrefix 必须唯一:不能有两个独立菜单使用相同的 pathPrefix
  2. 子项 path 必须以 pathPrefix 开头:否则路由无法正确剥离前缀
  3. 文档目录名与 pathPrefix 一致:如 /dp 的文档放在 docs/zh-CN/dp/
  4. 不需要手动改 route.config.js 或创建新的 vue 容器:全部自动处理

版本: v1.1.26 最后更新: 2026年5月