@mc-markets/ui 1.1.4 → 1.1.5

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.
@@ -0,0 +1,271 @@
1
+ # 清除 Vite 缓存 - 解决导出错误
2
+
3
+ ## 问题
4
+
5
+ ```
6
+ Uncaught (in promise) SyntaxError: The requested module '/node_modules/.vite/deps/@mc-markets_ui.js?t=xxx'
7
+ does not provide an export named 'MOption'
8
+ ```
9
+
10
+ ## 原因
11
+
12
+ Vite 会缓存依赖的预构建结果到 `node_modules/.vite/deps/` 目录。当组件库更新后,如果缓存没有更新,就会出现这个错误。
13
+
14
+ ## 解决方案
15
+
16
+ ### 方案 1:删除 Vite 缓存目录(最彻底)⭐
17
+
18
+ ```bash
19
+ # 在你的项目目录运行(不是组件库目录)
20
+ cd D:\code\mcmarkets-new
21
+
22
+ # Windows PowerShell
23
+ Remove-Item -Recurse -Force node_modules\.vite
24
+
25
+ # 或 Windows CMD
26
+ rmdir /s /q node_modules\.vite
27
+
28
+ # 然后重启开发服务器
29
+ npm run dev
30
+ ```
31
+
32
+ ### 方案 2:使用 Vite 的强制重新优化
33
+
34
+ ```bash
35
+ # 添加 --force 参数强制重新预构建依赖
36
+ npm run dev -- --force
37
+ ```
38
+
39
+ ### 方案 3:清除缓存并重新安装
40
+
41
+ ```bash
42
+ # 1. 删除 node_modules
43
+ rm -rf node_modules
44
+
45
+ # 2. 删除 package-lock.json
46
+ rm package-lock.json
47
+
48
+ # 3. 重新安装
49
+ npm install
50
+
51
+ # 4. 启动开发服务器
52
+ npm run dev
53
+ ```
54
+
55
+ ### 方案 4:如果使用 npm link(本地开发)
56
+
57
+ ```bash
58
+ # 1. 在组件库目录重新 link
59
+ cd D:\code\npm-mc-markets-ui
60
+ npm link
61
+
62
+ # 2. 在项目目录重新 link
63
+ cd D:\code\mcmarkets-new
64
+ npm unlink @mc-markets/ui
65
+ npm link @mc-markets/ui
66
+
67
+ # 3. 清除 Vite 缓存
68
+ Remove-Item -Recurse -Force node_modules\.vite
69
+
70
+ # 4. 重启开发服务器
71
+ npm run dev -- --force
72
+ ```
73
+
74
+ ## 验证步骤
75
+
76
+ ### 1. 确认组件库已正确构建
77
+
78
+ 在组件库目录:
79
+ ```bash
80
+ cd D:\code\npm-mc-markets-ui
81
+
82
+ # 检查构建产物
83
+ dir dist\index.*
84
+
85
+ # 验证导出
86
+ node -e "import('./dist/index.mjs').then(m => console.log('MOption:', typeof m.MOption, 'MOptionGroup:', typeof m.MOptionGroup))"
87
+ ```
88
+
89
+ 预期输出:
90
+ ```
91
+ MOption: function MOptionGroup: function
92
+ ```
93
+
94
+ ### 2. 确认项目依赖版本
95
+
96
+ 在项目目录:
97
+ ```bash
98
+ cd D:\code\mcmarkets-new
99
+
100
+ # 检查安装的版本
101
+ npm list @mc-markets/ui
102
+ ```
103
+
104
+ 应该显示 `1.1.3` 或 `1.1.4`
105
+
106
+ ### 3. 检查 Vite 预构建文件
107
+
108
+ 启动开发服务器后,检查:
109
+ ```bash
110
+ # 查看预构建的文件
111
+ dir node_modules\.vite\deps\@mc-markets_ui.js
112
+ ```
113
+
114
+ 如果文件存在,检查其修改时间应该是最近的。
115
+
116
+ ## 预防措施
117
+
118
+ ### 在 vite.config.js 中配置
119
+
120
+ ```js
121
+ // vite.config.js
122
+ export default defineConfig({
123
+ optimizeDeps: {
124
+ // 强制预构建
125
+ include: ['@mc-markets/ui'],
126
+
127
+ // 或者排除(让 Vite 每次都处理)
128
+ // exclude: ['@mc-markets/ui']
129
+ },
130
+
131
+ // 开发时总是强制优化依赖
132
+ server: {
133
+ force: true // 不推荐,会影响性能
134
+ }
135
+ })
136
+ ```
137
+
138
+ ### 使用 npm 包而不是 npm link
139
+
140
+ 如果经常遇到缓存问题,建议:
141
+
142
+ 1. **发布到 npm**:
143
+ ```bash
144
+ cd D:\code\npm-mc-markets-ui
145
+ npm publish
146
+ ```
147
+
148
+ 2. **在项目中安装**:
149
+ ```bash
150
+ cd D:\code\mcmarkets-new
151
+ npm install @mc-markets/ui@latest
152
+ ```
153
+
154
+ ### 设置 package.json 脚本
155
+
156
+ ```json
157
+ {
158
+ "scripts": {
159
+ "dev": "vite",
160
+ "dev:clean": "rm -rf node_modules/.vite && vite",
161
+ "dev:force": "vite --force"
162
+ }
163
+ }
164
+ ```
165
+
166
+ 然后使用:
167
+ ```bash
168
+ npm run dev:clean # 清除缓存后启动
169
+ npm run dev:force # 强制重新优化
170
+ ```
171
+
172
+ ## 常见问题
173
+
174
+ ### Q1: 清除缓存后还是报错
175
+
176
+ **检查项**:
177
+ 1. 确认组件库版本是否正确:`npm list @mc-markets/ui`
178
+ 2. 检查 dist 目录是否有最新的构建产物
179
+ 3. 尝试完全删除 `node_modules` 重新安装
180
+
181
+ ### Q2: npm link 后总是有问题
182
+
183
+ **解决方法**:
184
+ ```bash
185
+ # 使用 npm pack 打包本地测试
186
+ cd D:\code\npm-mc-markets-ui
187
+ npm pack
188
+
189
+ # 会生成 mc-markets-ui-1.1.4.tgz
190
+
191
+ # 在项目中安装本地包
192
+ cd D:\code\mcmarkets-new
193
+ npm install D:\code\npm-mc-markets-ui\mc-markets-ui-1.1.4.tgz
194
+ ```
195
+
196
+ ### Q3: 生产构建没问题,开发环境有问题
197
+
198
+ 这是因为:
199
+ - 开发环境使用 Vite 的依赖预构建
200
+ - 生产构建直接使用源代码
201
+
202
+ **解决方法**:使用方案 1 或 2 清除开发环境缓存
203
+
204
+ ## 完整操作流程(推荐)
205
+
206
+ ```bash
207
+ # === 在组件库目录 ===
208
+ cd D:\code\npm-mc-markets-ui
209
+
210
+ # 1. 确保最新代码
211
+ git status
212
+
213
+ # 2. 重新构建
214
+ npm run build
215
+
216
+ # 3. 验证导出(可选)
217
+ node -e "import('./dist/index.mjs').then(m => console.log('Exports:', Object.keys(m).filter(k => k.startsWith('M')).length, 'components'))"
218
+
219
+ # === 在项目目录 ===
220
+ cd D:\code\mcmarkets-new
221
+
222
+ # 4. 清除 Vite 缓存
223
+ Remove-Item -Recurse -Force node_modules\.vite
224
+
225
+ # 5. 如果使用 npm link,重新链接
226
+ npm unlink @mc-markets/ui
227
+ npm link D:\code\npm-mc-markets-ui
228
+
229
+ # 6. 强制重启开发服务器
230
+ npm run dev -- --force
231
+ ```
232
+
233
+ ## 终极解决方案(如果以上都不行)
234
+
235
+ ```bash
236
+ # 在项目目录
237
+ cd D:\code\mcmarkets-new
238
+
239
+ # 1. 完全清理
240
+ Remove-Item -Recurse -Force node_modules
241
+ Remove-Item -Force package-lock.json
242
+
243
+ # 2. 清理缓存
244
+ npm cache clean --force
245
+
246
+ # 3. 重新安装
247
+ npm install
248
+
249
+ # 4. 如果使用本地包
250
+ npm install D:\code\npm-mc-markets-ui
251
+
252
+ # 5. 启动
253
+ npm run dev -- --force
254
+ ```
255
+
256
+ ## 成功标志
257
+
258
+ 启动开发服务器后,应该能看到:
259
+ - ✅ 没有报错
260
+ - ✅ 组件正常显示
261
+ - ✅ 浏览器控制台没有错误
262
+ - ✅ Network 标签中可以看到 `@mc-markets_ui.js` 文件被正确加载
263
+
264
+ ## 需要帮助?
265
+
266
+ 如果以上方法都不行,请检查:
267
+ 1. 组件库的 `dist/index.d.ts` 是否包含 `MOption` 导出
268
+ 2. `package.json` 的 `exports` 配置是否正确
269
+ 3. Vite 版本是否过旧(建议 5.0+)
270
+ 4. 是否有多个版本的 `@mc-markets/ui` 被安装(检查 `node_modules/@mc-markets/ui`)
271
+
@@ -0,0 +1,166 @@
1
+ # 修复打包错误 - MOption 和 MOptionGroup 导出问题
2
+
3
+ ## 问题描述
4
+
5
+ 在打包时遇到错误:
6
+ ```
7
+ import { MOption as __unplugin_components_0 } from '@mc-markets/ui';
8
+ ^
9
+ ```
10
+
11
+ ## 原因
12
+
13
+ `MOption` 和 `MOptionGroup` 组件虽然已经被导入和注册,但没有在 `packages/index.js` 的导出列表中,导致打包时无法找到这些组件。
14
+
15
+ ## 修复方案
16
+
17
+ ### ✅ 已修复
18
+
19
+ 在 `packages/index.js` 的导出语句中添加了缺失的组件:
20
+
21
+ ```diff
22
+ - export { MIcon, MButton, MInput, MForm, MFormItem, MTooltip, MSelect, MPagination, ... }
23
+ + export { MIcon, MButton, MInput, MForm, MFormItem, MTooltip, MSelect, MOption, MOptionGroup, MPagination, ... }
24
+ ```
25
+
26
+ ### 📦 已重新构建
27
+
28
+ 执行了 `npm run build`,生成了新的构建产物:
29
+ - ✅ `dist/index.mjs` - ES 模块
30
+ - ✅ `dist/index.cjs` - CommonJS 模块
31
+ - ✅ `dist/index.d.ts` - TypeScript 类型定义
32
+ - ✅ `dist/style.css` - 样式文件
33
+
34
+ ### 📋 验证
35
+
36
+ 已验证类型定义文件中包含正确的导出:
37
+ ```typescript
38
+ export {
39
+ MIcon, MButton, MInput, MForm, MFormItem, MTooltip,
40
+ MSelect, MOption, MOptionGroup, // ✅ 已添加
41
+ MPagination, MRadio, MRadioGroup, MRadioButton,
42
+ MSwitch, MTag, MAlert, MDialog, MNotification,
43
+ MMessage, MNotifiMessage, MDatePicker, MEmpty,
44
+ MTable, MTableColumn, MBanner, MTabs, MTabPane,
45
+ MTabCard, MTabCardItem, MBreadcrumb,
46
+ Message, NotifiMessage
47
+ }
48
+ ```
49
+
50
+ ## 下一步操作
51
+
52
+ ### 在你的项目中更新包
53
+
54
+ ```bash
55
+ # 如果是本地开发
56
+ cd your-project
57
+ npm install @mc-markets/ui@latest
58
+
59
+ # 或者如果是通过 npm link 本地测试
60
+ cd /path/to/npm-mc-markets-ui
61
+ npm link
62
+
63
+ cd /path/to/your-project
64
+ npm link @mc-markets/ui
65
+ ```
66
+
67
+ ### 清除缓存并重新构建
68
+
69
+ ```bash
70
+ # 清除 node_modules 缓存
71
+ rm -rf node_modules/.vite
72
+
73
+ # 重新构建
74
+ npm run build
75
+ ```
76
+
77
+ ### 测试
78
+
79
+ 现在可以正常使用所有组件:
80
+
81
+ ```vue
82
+ <template>
83
+ <div>
84
+ <!-- ✅ 所有组件都能正常工作 -->
85
+ <m-select v-model="value">
86
+ <m-option label="选项1" value="1" />
87
+ <m-option label="选项2" value="2" />
88
+
89
+ <m-option-group label="分组">
90
+ <m-option label="选项3" value="3" />
91
+ </m-option-group>
92
+ </m-select>
93
+
94
+ <m-date-picker v-model="date" />
95
+ </div>
96
+ </template>
97
+
98
+ <script setup>
99
+ import { ref } from 'vue'
100
+ // 不需要手动导入,resolver 会自动处理
101
+
102
+ const value = ref('')
103
+ const date = ref('')
104
+ </script>
105
+ ```
106
+
107
+ ## 完整的导出组件列表
108
+
109
+ 现在所有这些组件都可以正确导入:
110
+
111
+ - ✅ `MIcon`
112
+ - ✅ `MButton`
113
+ - ✅ `MInput`
114
+ - ✅ `MForm`
115
+ - ✅ `MFormItem`
116
+ - ✅ `MTooltip`
117
+ - ✅ `MSelect`
118
+ - ✅ `MOption` ⭐ (已修复)
119
+ - ✅ `MOptionGroup` ⭐ (已修复)
120
+ - ✅ `MPagination`
121
+ - ✅ `MRadio`
122
+ - ✅ `MRadioGroup`
123
+ - ✅ `MRadioButton`
124
+ - ✅ `MSwitch`
125
+ - ✅ `MTag`
126
+ - ✅ `MAlert`
127
+ - ✅ `MDialog`
128
+ - ✅ `MNotification`
129
+ - ✅ `MMessage`
130
+ - ✅ `MNotifiMessage`
131
+ - ✅ `MDatePicker`
132
+ - ✅ `MEmpty`
133
+ - ✅ `MTable`
134
+ - ✅ `MTableColumn`
135
+ - ✅ `MBanner`
136
+ - ✅ `MTabs`
137
+ - ✅ `MTabPane`
138
+ - ✅ `MTabCard`
139
+ - ✅ `MTabCardItem`
140
+ - ✅ `MBreadcrumb`
141
+
142
+ ## 版本更新
143
+
144
+ - **当前版本**: `1.1.3`
145
+ - **修复内容**: 添加 `MOption` 和 `MOptionGroup` 到导出列表
146
+
147
+ ## 验证修复
148
+
149
+ 运行以下命令验证组件是否正确导出:
150
+
151
+ ```bash
152
+ node -e "import('@mc-markets/ui').then(m => console.log('MOption:', typeof m.MOption, '\nMOptionGroup:', typeof m.MOptionGroup))"
153
+ ```
154
+
155
+ 预期输出:
156
+ ```
157
+ MOption: function
158
+ MOptionGroup: function
159
+ ```
160
+
161
+ ## 相关文档
162
+
163
+ - [CHANGELOG.md](./CHANGELOG.md) - 完整的变更日志
164
+ - [RESOLVER_USAGE.md](./RESOLVER_USAGE.md) - Resolver 使用指南
165
+ - [STYLE_IMPORT_GUIDE.md](./STYLE_IMPORT_GUIDE.md) - 样式导入指南
166
+
package/README.md CHANGED
@@ -69,6 +69,13 @@ export default defineConfig({
69
69
 
70
70
  📘 详细配置请查看 [Resolver 使用指南](./RESOLVER_USAGE.md)
71
71
 
72
+ ⚠️ **开发环境提示**:如果遇到 `does not provide an export named 'xxx'` 错误,请清除 Vite 缓存:
73
+ ```bash
74
+ # 在你的项目目录运行
75
+ rm -rf node_modules/.vite
76
+ npm run dev -- --force
77
+ ```
78
+
72
79
  #### 方式三:手动按需导入
73
80
 
74
81
  ```vue