congmao-cli 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/bin/index.js +20 -0
- package/package.json +42 -0
- package/src/commands/create.js +171 -0
- package/src/commands/mcp.js +157 -0
- package/src/mcp/CURSOR_SETUP.md +259 -0
- package/src/mcp/README.md +134 -0
- package/src/mcp/USAGE_EXAMPLES.md +181 -0
- package/src/mcp/get-cursor-config.js +58 -0
- package/src/mcp/package.json +23 -0
- package/src/mcp/pnpm-lock.yaml +2441 -0
- package/src/mcp/src/handlers.js +211 -0
- package/src/mcp/src/http-server.js +332 -0
- package/src/mcp/src/index.js +195 -0
- package/src/mcp/src/schemas.js +54 -0
- package/src/mcp/test-create-project.js +49 -0
- package/src/mcp/test-mcp.js +89 -0
- package/src/mcp/test-show-tree.js +66 -0
- package/src/template/Uni-app/README.md +19 -0
- package/src/template/Uni-app/babel.config.js +81 -0
- package/src/template/Uni-app/package.json +107 -0
- package/src/template/Uni-app/postcss.config.js +27 -0
- package/src/template/Uni-app/public/index.html +25 -0
- package/src/template/Uni-app/shims-uni.d.ts +11 -0
- package/src/template/Uni-app/shims-vue.d.ts +4 -0
- package/src/template/Uni-app/src/App.vue +17 -0
- package/src/template/Uni-app/src/main.js +12 -0
- package/src/template/Uni-app/src/manifest.json +75 -0
- package/src/template/Uni-app/src/pages/index/index.vue +49 -0
- package/src/template/Uni-app/src/pages.json +16 -0
- package/src/template/Uni-app/src/static/logo.png +0 -0
- package/src/template/Uni-app/src/uni.promisify.adaptor.js +13 -0
- package/src/template/Uni-app/src/uni.scss +76 -0
- package/src/template/Uni-app/yarn.lock +11466 -0
- package/src/template/Vue2/.editorconfig +14 -0
- package/src/template/Vue2/.env +2 -0
- package/src/template/Vue2/.env.development +2 -0
- package/src/template/Vue2/.env.site +2 -0
- package/src/template/Vue2/.prettierrc.js +39 -0
- package/src/template/Vue2/.stylelintignore +8 -0
- package/src/template/Vue2/README-zh_CN.md +115 -0
- package/src/template/Vue2/commitlint.config.js +1 -0
- package/src/template/Vue2/docs/docs-starter.png +0 -0
- package/src/template/Vue2/docs/docs-startup.png +0 -0
- package/src/template/Vue2/docs/docs-structure.png +0 -0
- package/src/template/Vue2/globals.d.ts +13 -0
- package/src/template/Vue2/index.html +27 -0
- package/src/template/Vue2/jsx.d.ts +13 -0
- package/src/template/Vue2/mock/index.ts +147 -0
- package/src/template/Vue2/package.json +91 -0
- package/src/template/Vue2/package.json.ejs +91 -0
- package/src/template/Vue2/public/favicon.ico +0 -0
- package/src/template/Vue2/shims-vue.d.ts +5 -0
- package/src/template/Vue2/src/App.vue +19 -0
- package/src/template/Vue2/src/assets/assets-login-bg-black.png +0 -0
- package/src/template/Vue2/src/assets/assets-login-bg-white.png +0 -0
- package/src/template/Vue2/src/assets/assets-logo-full.svg +39 -0
- package/src/template/Vue2/src/assets/assets-product-1.svg +5 -0
- package/src/template/Vue2/src/assets/assets-product-2.svg +5 -0
- package/src/template/Vue2/src/assets/assets-product-3.svg +5 -0
- package/src/template/Vue2/src/assets/assets-product-4.svg +5 -0
- package/src/template/Vue2/src/assets/assets-result-403.svg +32 -0
- package/src/template/Vue2/src/assets/assets-result-404.svg +36 -0
- package/src/template/Vue2/src/assets/assets-result-500.svg +32 -0
- package/src/template/Vue2/src/assets/assets-result-ie.svg +33 -0
- package/src/template/Vue2/src/assets/assets-result-maintenance.svg +49 -0
- package/src/template/Vue2/src/assets/assets-result-wifi.svg +23 -0
- package/src/template/Vue2/src/assets/assets-setting-auto.svg +13 -0
- package/src/template/Vue2/src/assets/assets-setting-dark.svg +5 -0
- package/src/template/Vue2/src/assets/assets-setting-light.svg +13 -0
- package/src/template/Vue2/src/assets/assets-t-logo.svg +41 -0
- package/src/template/Vue2/src/assets/assets-tencent-logo.png +0 -0
- package/src/template/Vue2/src/components/color/index.vue +35 -0
- package/src/template/Vue2/src/components/product-card/index.vue +121 -0
- package/src/template/Vue2/src/components/result/index.vue +118 -0
- package/src/template/Vue2/src/components/thumbnail/index.vue +49 -0
- package/src/template/Vue2/src/components/trend/index.vue +105 -0
- package/src/template/Vue2/src/config/color.ts +30 -0
- package/src/template/Vue2/src/config/global.ts +2 -0
- package/src/template/Vue2/src/config/host.ts +26 -0
- package/src/template/Vue2/src/config/style.ts +14 -0
- package/src/template/Vue2/src/constants/index.ts +46 -0
- package/src/template/Vue2/src/interface.ts +39 -0
- package/src/template/Vue2/src/layouts/blank.vue +12 -0
- package/src/template/Vue2/src/layouts/components/Breadcrumb.vue +39 -0
- package/src/template/Vue2/src/layouts/components/Content.vue +43 -0
- package/src/template/Vue2/src/layouts/components/Footer.vue +27 -0
- package/src/template/Vue2/src/layouts/components/Header.vue +321 -0
- package/src/template/Vue2/src/layouts/components/LayoutContent.vue +168 -0
- package/src/template/Vue2/src/layouts/components/LayoutHeader.vue +52 -0
- package/src/template/Vue2/src/layouts/components/LayoutSidebar.vue +51 -0
- package/src/template/Vue2/src/layouts/components/MenuContent.vue +108 -0
- package/src/template/Vue2/src/layouts/components/Notice.vue +221 -0
- package/src/template/Vue2/src/layouts/components/Search.vue +134 -0
- package/src/template/Vue2/src/layouts/components/SideNav.vue +150 -0
- package/src/template/Vue2/src/layouts/index.vue +100 -0
- package/src/template/Vue2/src/layouts/setting.vue +404 -0
- package/src/template/Vue2/src/main.js +9 -0
- package/src/template/Vue2/src/main.jsx +51 -0
- package/src/template/Vue2/src/pages/dashboard/base/components/MiddleChart.vue +158 -0
- package/src/template/Vue2/src/pages/dashboard/base/components/OutputOverview.vue +189 -0
- package/src/template/Vue2/src/pages/dashboard/base/components/RankList.vue +111 -0
- package/src/template/Vue2/src/pages/dashboard/base/components/TopPanel.vue +246 -0
- package/src/template/Vue2/src/pages/dashboard/base/index.ts +702 -0
- package/src/template/Vue2/src/pages/dashboard/base/index.vue +44 -0
- package/src/template/Vue2/src/pages/dashboard/detail/index.ts +267 -0
- package/src/template/Vue2/src/pages/dashboard/detail/index.vue +242 -0
- package/src/template/Vue2/src/pages/detail/advanced/components/Product.vue +167 -0
- package/src/template/Vue2/src/pages/detail/advanced/index.less +74 -0
- package/src/template/Vue2/src/pages/detail/advanced/index.vue +219 -0
- package/src/template/Vue2/src/pages/detail/base/index.less +105 -0
- package/src/template/Vue2/src/pages/detail/base/index.vue +46 -0
- package/src/template/Vue2/src/pages/detail/deploy/index.ts +204 -0
- package/src/template/Vue2/src/pages/detail/deploy/index.vue +224 -0
- package/src/template/Vue2/src/pages/detail/secondary/index.less +71 -0
- package/src/template/Vue2/src/pages/detail/secondary/index.vue +131 -0
- package/src/template/Vue2/src/pages/form/base/index.less +57 -0
- package/src/template/Vue2/src/pages/form/base/index.vue +254 -0
- package/src/template/Vue2/src/pages/form/step/index.less +37 -0
- package/src/template/Vue2/src/pages/form/step/index.vue +259 -0
- package/src/template/Vue2/src/pages/frame/doc/index.vue +86 -0
- package/src/template/Vue2/src/pages/frame/tdesign/index.vue +86 -0
- package/src/template/Vue2/src/pages/list/base/index.vue +267 -0
- package/src/template/Vue2/src/pages/list/card/index.vue +221 -0
- package/src/template/Vue2/src/pages/list/components/CommonTable.vue +313 -0
- package/src/template/Vue2/src/pages/list/filter/index.vue +15 -0
- package/src/template/Vue2/src/pages/list/tree/index.vue +174 -0
- package/src/template/Vue2/src/pages/login/components/components-header.vue +74 -0
- package/src/template/Vue2/src/pages/login/components/components-login.vue +154 -0
- package/src/template/Vue2/src/pages/login/components/components-register.vue +144 -0
- package/src/template/Vue2/src/pages/login/index.less +202 -0
- package/src/template/Vue2/src/pages/login/index.vue +53 -0
- package/src/template/Vue2/src/pages/nest-menu/Index.vue +10 -0
- package/src/template/Vue2/src/pages/result/403/index.vue +14 -0
- package/src/template/Vue2/src/pages/result/404/index.vue +14 -0
- package/src/template/Vue2/src/pages/result/500/index.vue +14 -0
- package/src/template/Vue2/src/pages/result/browser-incompatible/index.vue +77 -0
- package/src/template/Vue2/src/pages/result/fail/index.vue +57 -0
- package/src/template/Vue2/src/pages/result/maintenance/index.vue +14 -0
- package/src/template/Vue2/src/pages/result/network-error/index.vue +24 -0
- package/src/template/Vue2/src/pages/result/success/index.vue +59 -0
- package/src/template/Vue2/src/pages/user/index.less +148 -0
- package/src/template/Vue2/src/pages/user/index.ts +157 -0
- package/src/template/Vue2/src/pages/user/index.vue +204 -0
- package/src/template/Vue2/src/permission.js +56 -0
- package/src/template/Vue2/src/router/index.js +43 -0
- package/src/template/Vue2/src/router/modules/base.ts +29 -0
- package/src/template/Vue2/src/router/modules/components.ts +175 -0
- package/src/template/Vue2/src/router/modules/others.ts +55 -0
- package/src/template/Vue2/src/service/service-advance.ts +233 -0
- package/src/template/Vue2/src/service/service-base.ts +205 -0
- package/src/template/Vue2/src/service/service-detail-base.ts +84 -0
- package/src/template/Vue2/src/service/service-detail-deploy.ts +234 -0
- package/src/template/Vue2/src/service/service-detail.ts +57 -0
- package/src/template/Vue2/src/service/service-user.ts +64 -0
- package/src/template/Vue2/src/store/index.ts +22 -0
- package/src/template/Vue2/src/store/modules/notification.ts +90 -0
- package/src/template/Vue2/src/store/modules/permission.ts +66 -0
- package/src/template/Vue2/src/store/modules/setting.ts +122 -0
- package/src/template/Vue2/src/store/modules/tab-router.ts +83 -0
- package/src/template/Vue2/src/store/modules/user.ts +98 -0
- package/src/template/Vue2/src/style/font-family.less +6 -0
- package/src/template/Vue2/src/style/index.less +5 -0
- package/src/template/Vue2/src/style/layout.less +201 -0
- package/src/template/Vue2/src/style/reset.less +78 -0
- package/src/template/Vue2/src/style/variables.less +27 -0
- package/src/template/Vue2/src/utils/charts.ts +38 -0
- package/src/template/Vue2/src/utils/color.ts +118 -0
- package/src/template/Vue2/src/utils/date.ts +12 -0
- package/src/template/Vue2/src/utils/request.ts +60 -0
- package/src/template/Vue2/stylelint.config.js +5 -0
- package/src/template/Vue2/tsconfig.json +26 -0
- package/src/template/Vue2/vite.config.js +58 -0
- package/src/template/Vue3/package.json.ejs +8 -0
- package/src/template/Vue3/pages.json +10 -0
- package/src/template/Vue3/src/main.js +7 -0
- package/src/utils/copy.js +17 -0
- package/src/utils/eslint.js +205 -0
- package/src/utils/logo.js +18 -0
- package/src/utils/render.js +20 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# CM CLI MCP 服务器
|
|
2
|
+
|
|
3
|
+
CM CLI 的 Model Context Protocol (MCP) 服务器,为 AI 助手提供快速创建项目和查看项目结构的能力。
|
|
4
|
+
|
|
5
|
+
## 功能
|
|
6
|
+
|
|
7
|
+
### 1. 快速创建项目 (`create-project`)
|
|
8
|
+
|
|
9
|
+
支持创建以下类型的项目:
|
|
10
|
+
- **移动端** (mobile): 使用 Uni-app 模板
|
|
11
|
+
- **小程序** (miniprogram): 使用 Uni-app 模板
|
|
12
|
+
- **后台管理系统** (admin): 使用 Vue2 或 Vue3 模板
|
|
13
|
+
|
|
14
|
+
#### 参数
|
|
15
|
+
|
|
16
|
+
- `projectName` (必需): 项目名称,只能包含小写字母、数字和连字符
|
|
17
|
+
- `projectType` (必需): 项目类型,可选值:`mobile`、`miniprogram`、`admin`
|
|
18
|
+
- `vueVersion` (可选): Vue 版本,当 `projectType` 为 `admin` 时必需,可选值:`Vue2`、`Vue3`
|
|
19
|
+
- `needESLint` (可选): 是否配置 ESLint,默认为 `true`
|
|
20
|
+
- `targetPath` (可选): 目标路径,默认为当前工作目录
|
|
21
|
+
|
|
22
|
+
#### 示例
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"projectName": "my-admin-project",
|
|
27
|
+
"projectType": "admin",
|
|
28
|
+
"vueVersion": "Vue2",
|
|
29
|
+
"needESLint": true
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2. 查看项目结构树 (`show-project-tree`)
|
|
34
|
+
|
|
35
|
+
显示指定项目的目录结构树。
|
|
36
|
+
|
|
37
|
+
#### 参数
|
|
38
|
+
|
|
39
|
+
- `projectPath` (必需): 项目路径,可以是相对路径或绝对路径
|
|
40
|
+
- `maxDepth` (可选): 最大深度,默认为 `3`
|
|
41
|
+
- `ignorePatterns` (可选): 忽略的目录模式,默认为 `["node_modules", ".git", "dist", "build"]`
|
|
42
|
+
|
|
43
|
+
#### 示例
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"projectPath": "./my-project",
|
|
48
|
+
"maxDepth": 2,
|
|
49
|
+
"ignorePatterns": ["node_modules", ".git"]
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 使用方法
|
|
54
|
+
|
|
55
|
+
### 安装依赖(首次使用必需)
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
cd src/mcp
|
|
59
|
+
pnpm install
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 作为 MCP 服务器运行
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
cd src/mcp
|
|
66
|
+
node src/index.js
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 在 Cursor 中配置
|
|
70
|
+
|
|
71
|
+
**详细配置指南请查看 [CURSOR_SETUP.md](./CURSOR_SETUP.md)**
|
|
72
|
+
|
|
73
|
+
快速配置步骤:
|
|
74
|
+
|
|
75
|
+
1. 打开 Cursor 设置(`Ctrl+,` 或 `Cmd+,`)
|
|
76
|
+
2. 搜索 "MCP" 或 "Model Context Protocol"
|
|
77
|
+
3. 添加以下配置(替换为你的实际路径):
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"mcpServers": {
|
|
82
|
+
"cm-cli": {
|
|
83
|
+
"command": "node",
|
|
84
|
+
"args": [
|
|
85
|
+
"/absolute/path/to/cm-cli/src/mcp/src/index.js"
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
4. 重启 Cursor
|
|
93
|
+
|
|
94
|
+
### 在 Claude Desktop 中配置
|
|
95
|
+
|
|
96
|
+
在 Claude Desktop 的配置文件中添加:
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"mcpServers": {
|
|
101
|
+
"cm-cli": {
|
|
102
|
+
"command": "node",
|
|
103
|
+
"args": ["/path/to/cm-cli/src/mcp/src/index.js"]
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## 测试
|
|
110
|
+
|
|
111
|
+
运行测试脚本:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
cd src/mcp
|
|
115
|
+
node test-mcp.js
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## 使用示例
|
|
119
|
+
|
|
120
|
+
详细的使用示例请查看 [USAGE_EXAMPLES.md](./USAGE_EXAMPLES.md)
|
|
121
|
+
|
|
122
|
+
## 项目结构
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
src/mcp/
|
|
126
|
+
├── src/
|
|
127
|
+
│ ├── index.js # MCP 服务器主文件
|
|
128
|
+
│ ├── handlers.js # 工具处理逻辑
|
|
129
|
+
│ └── schemas.js # 输入验证
|
|
130
|
+
├── package.json
|
|
131
|
+
├── README.md
|
|
132
|
+
└── test-mcp.js # 测试脚本
|
|
133
|
+
```
|
|
134
|
+
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# create-project 工具使用示例
|
|
2
|
+
|
|
3
|
+
## 工具说明
|
|
4
|
+
|
|
5
|
+
`create-project` 是 CM CLI MCP 服务器提供的工具,用于快速创建项目。
|
|
6
|
+
|
|
7
|
+
## 支持的项目类型
|
|
8
|
+
|
|
9
|
+
1. **移动端 (mobile)**: 使用 Uni-app 模板
|
|
10
|
+
2. **小程序 (miniprogram)**: 使用 Uni-app 模板
|
|
11
|
+
3. **后台管理系统 (admin)**: 使用 Vue2 或 Vue3 模板
|
|
12
|
+
|
|
13
|
+
## 参数说明
|
|
14
|
+
|
|
15
|
+
| 参数 | 类型 | 必需 | 说明 |
|
|
16
|
+
|------|------|------|------|
|
|
17
|
+
| `projectName` | string | ✅ | 项目名称,只能包含小写字母、数字和连字符 |
|
|
18
|
+
| `projectType` | string | ✅ | 项目类型:`mobile`、`miniprogram`、`admin` |
|
|
19
|
+
| `vueVersion` | string | ⚠️ | Vue 版本:`Vue2` 或 `Vue3`(仅当 `projectType` 为 `admin` 时必需) |
|
|
20
|
+
| `needESLint` | boolean | ❌ | 是否配置 ESLint,默认为 `true` |
|
|
21
|
+
| `targetPath` | string | ❌ | 目标路径,默认为当前工作目录 |
|
|
22
|
+
|
|
23
|
+
## 使用示例
|
|
24
|
+
|
|
25
|
+
### 示例 1: 创建 Vue2 后台管理系统
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"projectName": "my-admin-app",
|
|
30
|
+
"projectType": "admin",
|
|
31
|
+
"vueVersion": "Vue2",
|
|
32
|
+
"needESLint": true
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**在 Cursor 中使用**:
|
|
37
|
+
```
|
|
38
|
+
请使用 create-project 工具创建一个名为 "my-admin-app" 的后台管理系统项目,
|
|
39
|
+
使用 Vue2,并配置 ESLint。
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 示例 2: 创建 Vue3 后台管理系统(不配置 ESLint)
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"projectName": "my-vue3-app",
|
|
47
|
+
"projectType": "admin",
|
|
48
|
+
"vueVersion": "Vue3",
|
|
49
|
+
"needESLint": false
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**在 Cursor 中使用**:
|
|
54
|
+
```
|
|
55
|
+
请创建一个名为 "my-vue3-app" 的 Vue3 后台管理系统项目,不配置 ESLint。
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 示例 3: 创建移动端项目
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"projectName": "my-mobile-app",
|
|
63
|
+
"projectType": "mobile",
|
|
64
|
+
"needESLint": true
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**在 Cursor 中使用**:
|
|
69
|
+
```
|
|
70
|
+
请创建一个名为 "my-mobile-app" 的移动端项目。
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 示例 4: 创建小程序项目
|
|
74
|
+
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"projectName": "my-miniprogram",
|
|
78
|
+
"projectType": "miniprogram",
|
|
79
|
+
"needESLint": false
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**在 Cursor 中使用**:
|
|
84
|
+
```
|
|
85
|
+
请创建一个名为 "my-miniprogram" 的小程序项目,不配置 ESLint。
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 示例 5: 指定目标路径
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"projectName": "my-project",
|
|
93
|
+
"projectType": "admin",
|
|
94
|
+
"vueVersion": "Vue2",
|
|
95
|
+
"targetPath": "/path/to/projects"
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## 返回结果
|
|
100
|
+
|
|
101
|
+
成功创建项目后,会返回:
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"success": true,
|
|
106
|
+
"message": "项目创建成功!\n\ncd my-project\npnpm install\npnpm run lint\npnpm run dev",
|
|
107
|
+
"projectPath": "/absolute/path/to/my-project",
|
|
108
|
+
"templateName": "Vue2",
|
|
109
|
+
"startCommands": "cd my-project\npnpm install\npnpm run lint\npnpm run dev"
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## 错误处理
|
|
114
|
+
|
|
115
|
+
### 错误 1: 项目名称格式不正确
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"success": false,
|
|
120
|
+
"error": "项目名称只能包含小写字母、数字和连字符"
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**解决方案**: 确保项目名称只包含小写字母、数字和连字符(如:`my-project-123`)
|
|
125
|
+
|
|
126
|
+
### 错误 2: 后台管理系统缺少 Vue 版本
|
|
127
|
+
|
|
128
|
+
```json
|
|
129
|
+
{
|
|
130
|
+
"success": false,
|
|
131
|
+
"error": "后台管理系统需要指定Vue版本"
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**解决方案**: 当 `projectType` 为 `admin` 时,必须提供 `vueVersion` 参数
|
|
136
|
+
|
|
137
|
+
### 错误 3: 目录已存在
|
|
138
|
+
|
|
139
|
+
```json
|
|
140
|
+
{
|
|
141
|
+
"success": false,
|
|
142
|
+
"error": "目录已存在: /path/to/project"
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**解决方案**: 选择不同的项目名称或删除已存在的目录
|
|
147
|
+
|
|
148
|
+
### 错误 4: 模板不存在
|
|
149
|
+
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"success": false,
|
|
153
|
+
"error": "模板不存在: /path/to/template"
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**解决方案**: 检查模板目录是否存在,或联系管理员
|
|
158
|
+
|
|
159
|
+
## 常见问题
|
|
160
|
+
|
|
161
|
+
### Q: 项目名称可以使用大写字母吗?
|
|
162
|
+
A: 不可以。项目名称只能包含小写字母、数字和连字符。
|
|
163
|
+
|
|
164
|
+
### Q: 可以在已存在的目录中创建项目吗?
|
|
165
|
+
A: 不可以。目标目录必须不存在,否则会返回错误。
|
|
166
|
+
|
|
167
|
+
### Q: ESLint 配置是必需的吗?
|
|
168
|
+
A: 不是。可以通过设置 `needESLint: false` 来跳过 ESLint 配置。
|
|
169
|
+
|
|
170
|
+
### Q: 创建的项目在哪里?
|
|
171
|
+
A: 默认在当前工作目录下创建。可以通过 `targetPath` 参数指定其他路径。
|
|
172
|
+
|
|
173
|
+
## 下一步
|
|
174
|
+
|
|
175
|
+
项目创建成功后,按照返回的启动命令操作:
|
|
176
|
+
|
|
177
|
+
1. 进入项目目录:`cd project-name`
|
|
178
|
+
2. 安装依赖:`pnpm install`
|
|
179
|
+
3. (如果配置了 ESLint)运行代码检查:`pnpm run lint`
|
|
180
|
+
4. 启动开发服务器:`pnpm run dev` 或 `pnpm run dev:h5`
|
|
181
|
+
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 生成 Cursor MCP 配置脚本
|
|
5
|
+
* 运行此脚本可以获取当前项目的 MCP 配置
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { fileURLToPath } from "url";
|
|
9
|
+
import { dirname, resolve } from "path";
|
|
10
|
+
import fs from "fs";
|
|
11
|
+
|
|
12
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
+
const __dirname = dirname(__filename);
|
|
14
|
+
|
|
15
|
+
// 获取 MCP 服务器的绝对路径
|
|
16
|
+
const mcpServerPath = resolve(__dirname, "src/index.js");
|
|
17
|
+
|
|
18
|
+
// 生成配置
|
|
19
|
+
const config = {
|
|
20
|
+
mcpServers: {
|
|
21
|
+
"cm-cli": {
|
|
22
|
+
command: "node",
|
|
23
|
+
args: [mcpServerPath],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
console.log("\n=== Cursor MCP 配置 ===\n");
|
|
29
|
+
console.log("请将以下配置添加到 Cursor 的 MCP 设置中:\n");
|
|
30
|
+
console.log(JSON.stringify(config, null, 2));
|
|
31
|
+
console.log("\n=== 配置路径信息 ===\n");
|
|
32
|
+
console.log(`MCP 服务器路径: ${mcpServerPath}`);
|
|
33
|
+
console.log(`\n验证路径是否存在: ${fs.existsSync(mcpServerPath) ? "✓ 存在" : "✗ 不存在"}`);
|
|
34
|
+
|
|
35
|
+
// 检查依赖是否已安装
|
|
36
|
+
const nodeModulesPath = resolve(__dirname, "node_modules", "@modelcontextprotocol", "sdk");
|
|
37
|
+
const depsInstalled = fs.existsSync(nodeModulesPath);
|
|
38
|
+
console.log(`\n依赖是否已安装: ${depsInstalled ? "✓ 已安装" : "✗ 未安装"}`);
|
|
39
|
+
|
|
40
|
+
if (!depsInstalled) {
|
|
41
|
+
console.log("\n⚠️ 警告: 依赖未安装,请先运行: pnpm install");
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// 根据操作系统显示配置文件位置
|
|
45
|
+
const os = process.platform;
|
|
46
|
+
let configPath = "";
|
|
47
|
+
|
|
48
|
+
if (os === "win32") {
|
|
49
|
+
configPath = "%APPDATA%\\Cursor\\User\\globalStorage\\cursor.mcp\\settings.json";
|
|
50
|
+
} else if (os === "darwin") {
|
|
51
|
+
configPath = "~/Library/Application Support/Cursor/User/globalStorage/cursor.mcp/settings.json";
|
|
52
|
+
} else {
|
|
53
|
+
configPath = "~/.config/Cursor/User/globalStorage/cursor.mcp/settings.json";
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
console.log(`\n配置文件位置: ${configPath}`);
|
|
57
|
+
console.log("\n详细配置说明请查看: src/mcp/CURSOR_SETUP.md\n");
|
|
58
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cm-cli-mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "src/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"cm-mcp": "./src/index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
11
|
+
"get-config": "node get-cursor-config.js"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [],
|
|
14
|
+
"author": "",
|
|
15
|
+
"license": "ISC",
|
|
16
|
+
"description": "CM CLI MCP server - 提供快速创建项目和查看项目结构的能力",
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@modelcontextprotocol/sdk": "^1.17.5"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@modelcontextprotocol/inspector": "^0.16.6"
|
|
22
|
+
}
|
|
23
|
+
}
|