@farris/cli 2.3.3 → 2.3.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.
Files changed (46) hide show
  1. package/lib/commands/build-components.js +4 -1
  2. package/lib/commands/build-components.js.map +1 -1
  3. package/lib/commands/create.js +8 -9
  4. package/lib/commands/create.js.map +1 -1
  5. package/lib/common/verifier.js +8 -5
  6. package/lib/common/verifier.js.map +1 -1
  7. package/lib/common/workspace-contract.js +26 -1
  8. package/lib/common/workspace-contract.js.map +1 -1
  9. package/package.json +1 -1
  10. package/templates/create/AGENTS.md +24 -5
  11. package/templates/create/README.md +2 -0
  12. package/templates/lib/components/index.ts +3 -10
  13. package/templates/lib/src/App.tsx +8 -0
  14. package/templates/lib/src/main.ts +1 -1
  15. package/templates/lib/test/index.spec.ts +9 -0
  16. package/templates/lib/test/index.spec.tsx +9 -0
  17. package/templates/mobile/src/App.tsx +21 -0
  18. package/templates/mobile/src/components/TheButton.tsx +9 -0
  19. package/templates/mobile/src/main.ts +1 -1
  20. package/templates/mobile/src/router/index.ts +2 -2
  21. package/templates/mobile/src/views/AboutView.tsx +12 -0
  22. package/templates/mobile/src/views/HomeView.tsx +13 -0
  23. package/templates/mobile/test/src/components/TheButton.spec.ts +2 -2
  24. package/templates/mobile/test/src/components/TheButton.spec.tsx +2 -2
  25. package/templates/web/src/App.tsx +25 -0
  26. package/templates/web/src/components/TheButton.tsx +9 -0
  27. package/templates/web/src/main.ts +1 -1
  28. package/templates/web/src/router/index.ts +2 -2
  29. package/templates/web/src/views/AboutView.tsx +12 -0
  30. package/templates/web/src/views/HomeView.tsx +13 -0
  31. package/templates/web/test/src/components/TheButton.spec.ts +2 -2
  32. package/templates/web/test/src/components/TheButton.spec.tsx +2 -2
  33. package/templates/lib/components/button/index.ts +0 -7
  34. package/templates/lib/components/button/src/button.scss +0 -10
  35. package/templates/lib/components/button/src/button.vue +0 -12
  36. package/templates/lib/src/App.vue +0 -7
  37. package/templates/lib/test/components/button/button.spec.ts +0 -11
  38. package/templates/lib/test/components/button/button.spec.tsx +0 -11
  39. package/templates/mobile/src/App.vue +0 -80
  40. package/templates/mobile/src/components/TheButton.vue +0 -3
  41. package/templates/mobile/src/views/AboutView.vue +0 -15
  42. package/templates/mobile/src/views/HomeView.vue +0 -9
  43. package/templates/web/src/App.vue +0 -84
  44. package/templates/web/src/components/TheButton.vue +0 -3
  45. package/templates/web/src/views/AboutView.vue +0 -15
  46. package/templates/web/src/views/HomeView.vue +0 -9
@@ -10,7 +10,10 @@ export async function buildComponents(options) {
10
10
  const farris = await getFarrisConfigAsync(options.configFile);
11
11
  const names = listLibComponents(process.cwd(), farris.excludeComponents);
12
12
  if (names.length === 0) {
13
- throw new Error('未找到可构建的组件(components/*/index.ts)');
13
+ // 空组件仓库:暂无可构建的组件,构建视为成功(产物为空),不报错。
14
+ // 否则 `farris-cli add-lib` 新建的空仓库 `pnpm build` 会默认失败。
15
+ console.log('暂无可构建的组件(components/*/index.ts),跳过构建。');
16
+ return;
14
17
  }
15
18
  const componentOutDir = farris.componentOutDir || './package/components';
16
19
  const outDir = farris.outDir || 'lib';
@@ -1 +1 @@
1
- {"version":3,"file":"build-components.js","sourceRoot":"","sources":["../../src/commands/build-components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-components.js","sourceRoot":"","sources":["../../src/commands/build-components.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { CreateAppError } from '../common/create-app-target.js';
9
9
  import { generateApp } from '../common/generate-app.js';
10
10
  import { fail, printNextSteps, printSuccess, sendJson, setJsonMode } from '../common/output.js';
11
11
  import { PROJECT_CONTAINERS, containerFor, deriveAppDir } from '../common/project-layout.js';
12
- import { renderCommandTable, renderProjectList } from '../common/workspace-contract.js';
12
+ import { renderCommandTable, renderProjectList, renderProjectOverview } from '../common/workspace-contract.js';
13
13
  import { ALLOWED_TYPES, DEFAULT_APP_FORMAT, DEFAULT_LIB_FORMATS, resolvePackageName } from './create-app-options.js';
14
14
  export { parseCreateArgv } from './create-options.js';
15
15
  const DEFAULT_WORKSPACE = 'my-workspace';
@@ -180,6 +180,7 @@ function scaffoldWorkspaceRoot(targetPath, context) {
180
180
  appContainer: PROJECT_CONTAINERS.app,
181
181
  libContainer: PROJECT_CONTAINERS.lib,
182
182
  commandTable: renderCommandTable(),
183
+ projectOverview: renderProjectOverview(context.workspaceTitle),
183
184
  projectList: renderProjectList(context.plannedProjects),
184
185
  title: context.workspaceTitle
185
186
  }
@@ -187,14 +188,12 @@ function scaffoldWorkspaceRoot(targetPath, context) {
187
188
  if (rootRender.unreplacedPlaceholders.length > 0) {
188
189
  throw new Error(`根模板未替换: ${rootRender.unreplacedPlaceholders.map((p) => p.placeholder).join(', ')}`);
189
190
  }
190
- // 两个容器目录必须同时存在(pnpm-workspace.yaml 的 glob 与 verifier 都要求);
191
- // 空容器放 .gitkeep 使其可见且可提交(设计文档 §4.4)。
192
- for (const container of [PROJECT_CONTAINERS.app, PROJECT_CONTAINERS.lib]) {
193
- const containerDir = join(targetPath, container);
194
- mkdirSync(containerDir, { recursive: true });
195
- if (!context.appRel || !context.appRel.startsWith(`${container}/`)) {
196
- writeFileSync(join(containerDir, '.gitkeep'), '');
197
- }
191
+ // 容器按需创建:只建「真的有工程」的那一类,空容器目录不出现。
192
+ // 另一类在首次 add-app / add-lib 时自动生成;pnpm 的 `container/*` glob 在目录不存在时
193
+ // 只是匹配为空,不影响安装,因此无需 .gitkeep 占位。
194
+ const containers = new Set(context.plannedProjects.map((project) => containerFor(project.type)));
195
+ for (const container of containers) {
196
+ mkdirSync(join(targetPath, container), { recursive: true });
198
197
  }
199
198
  }
200
199
  /** 渲染子工程模板、去掉子工程内的 CI 文件并把可入 catalog 的依赖改写为 catalog:。 */
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -28,9 +28,9 @@ function verifyAppProject(project, projectPath, pkg, label, addCheck) {
28
28
  addCheck(`${label}_html_entry`, hasCorrectEntry && !hasWrongEntry, `工程 ${project.dir} 的 index.html 入口必须为 /src/main.ts,不得写为 ./src/main.ts`);
29
29
  }
30
30
  addCheck(`${label}_main_ts`, existsSync(join(projectPath, 'src', 'main.ts')), `工程 ${project.dir} 缺少 src/main.ts`);
31
- const hasAppVue = existsSync(join(projectPath, 'src', 'App.vue'));
32
31
  const hasAppTsx = existsSync(join(projectPath, 'src', 'App.tsx'));
33
- addCheck(`${label}_app_entry`, hasAppVue || hasAppTsx, `工程 ${project.dir} 缺少 src/App.vue(或历史兼容的 src/App.tsx)`);
32
+ const hasAppVue = existsSync(join(projectPath, 'src', 'App.vue'));
33
+ addCheck(`${label}_app_entry`, hasAppTsx || hasAppVue, `工程 ${project.dir} 缺少 src/App.tsx(或历史兼容的 src/App.vue)`);
34
34
  const farrisConfigPath = join(projectPath, 'farris.config.mjs');
35
35
  const configContent = existsSync(farrisConfigPath) ? readFileSync(farrisConfigPath, 'utf-8') : '';
36
36
  const hasRelativeBase = /base\s*:\s*['"]\.\/?['"]/.test(configContent);
@@ -145,11 +145,14 @@ export function verifyWorkspace(targetDir, preservedInputs = []) {
145
145
  }
146
146
  addCheck('workspace_catalog', yamlContent.includes('catalog:'), 'pnpm-workspace.yaml 必须声明 catalog 依赖版本');
147
147
  }
148
- // 3. 容器目录
148
+ // 3. 容器目录:懒创建 —— 容器按需生成,只有该类型真的存在工程时才要求容器目录存在
149
+ const projects = listProjects(resolvedTarget);
149
150
  if (isNewLayout) {
150
151
  for (const type of CONTAINER_TYPES) {
151
152
  const aliases = containerAliases(type);
152
- addCheck(`container_${aliases[0]}`, aliases.some((container) => existsSync(join(resolvedTarget, container))), `缺少容器目录: ${aliases[0]}/`);
153
+ const hasProject = projects.some((project) => project.type === type);
154
+ const containerPresent = aliases.some((container) => existsSync(join(resolvedTarget, container)));
155
+ addCheck(`container_${aliases[0]}`, !hasProject || containerPresent, `存在 ${aliases[0]}/ 下的工程,但容器目录缺失: ${aliases[0]}/`);
153
156
  }
154
157
  }
155
158
  else {
@@ -157,7 +160,7 @@ export function verifyWorkspace(targetDir, preservedInputs = []) {
157
160
  addCheck(`container_${legacyContainer}`, existsSync(join(resolvedTarget, legacyContainer)), `缺少容器目录: ${legacyContainer}/`);
158
161
  }
159
162
  // 4. 逐个工程按类型校验
160
- for (const project of listProjects(resolvedTarget)) {
163
+ for (const project of projects) {
161
164
  verifyProject(resolvedTarget, project, addCheck);
162
165
  }
163
166
  // 5. AGENTS.md 体系(仅新结构强校验,见设计文档 §8.3)
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/common/verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/common/verifier.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { PROJECT_CONTAINERS } from './project-layout.js';
2
+ import { DEFAULT_CATALOG_VERSIONS, DEFAULT_ENGINES } from './constant.js';
2
3
  /**
3
4
  * 根 package.json 必须存在的脚本(设计文档 §7.1)。数组顺序即收尾提示中的展示顺序。
4
5
  */
@@ -76,13 +77,37 @@ export function renderCommandTable() {
76
77
  });
77
78
  return lines.join('\n');
78
79
  }
80
+ /**
81
+ * 生成 AGENTS.md 用的「项目速览」块。
82
+ *
83
+ * 把 AI 每次会话都要知道、又容易凭空猜错的基本信息集中一处:名称、形态、包管理器与运行时
84
+ * 要求、技术栈版本、工程统计。版本一律取自 DEFAULT_CATALOG_VERSIONS / DEFAULT_ENGINES,
85
+ * 与生成的 workspace 同源,不另立一份版本表。
86
+ */
87
+ export function renderProjectOverview(title) {
88
+ const version = (name) => DEFAULT_CATALOG_VERSIONS[name];
89
+ return [
90
+ `- **名称**:\`${title}\``,
91
+ '- **形态**:pnpm workspace(Farris 前端工程);应用与组件库分容器管理,容器按需出现',
92
+ `- **包管理器**:pnpm ${version('pnpm')}(根 \`package.json\` 的 \`packageManager\` 已锁定;要求 pnpm ${DEFAULT_ENGINES.pnpm})`,
93
+ `- **运行时**:Node ${DEFAULT_ENGINES.node}`,
94
+ `- **技术栈**:Vue ${version('vue')} · Vue Router ${version('vue-router')} · TypeScript ${version('typescript')} · Vite ${version('vite')} · vue-tsc ${version('vue-tsc')} · sass ${version('sass')}`,
95
+ `- **UI 组件库**:\`@farris/ui-vue\` ${version('@farris/ui-vue')}`,
96
+ `- **脚手架**:\`@farris/cli\` ${version('@farris/cli')}`,
97
+ '- **工程**:见下方「子工程清单」(增删工程后自动刷新,以其为准)',
98
+ '- 上列版本以根 `pnpm-workspace.yaml` 的 catalog 为唯一来源,不要在子工程里写死版本。'
99
+ ].join('\n');
100
+ }
79
101
  /** 生成 AGENTS.md 用的子工程清单。 */
80
102
  export function renderProjectList(projects) {
81
103
  if (projects.length === 0) {
82
104
  return '(暂无工程:可用 `farris-cli add-app` / `farris-cli add-lib` 创建)';
83
105
  }
84
- return projects
106
+ const appCount = projects.filter((project) => project.type === 'app').length;
107
+ const summary = `共 ${projects.length} 个工程(应用 ${appCount} 个 · 组件库 ${projects.length - appCount} 个)`;
108
+ const list = projects
85
109
  .map((project) => `- \`${project.dir}\`(${project.type === 'lib' ? '组件库' : '应用'})`)
86
110
  .join('\n');
111
+ return `${summary}\n\n${list}`;
87
112
  }
88
113
  //# sourceMappingURL=workspace-contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-contract.js","sourceRoot":"","sources":["../../src/common/workspace-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-contract.js","sourceRoot":"","sources":["../../src/common/workspace-contract.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@farris/cli",
3
3
  "private": false,
4
- "version": "2.3.3",
4
+ "version": "2.3.5",
5
5
  "type": "module",
6
6
  "typings": "lib/index.d.ts",
7
7
  "exports": {
@@ -1,9 +1,17 @@
1
1
  # <%= title %> — AI 协作契约
2
2
 
3
- 本文件是本 workspace 的**唯一真源**。子工程内不放任何 AI 配置文件;所有工具(Claude Code / Cursor / Windsurf / Copilot / Codex / Zed / VS Code …)都读这一份。
3
+ 本文件是本 workspace 的**唯一真源**:所有 AI 协作约定都写在这里。根目录 `CLAUDE.md` 只是指向本文件的一行指针。
4
+
5
+ ## 项目速览
6
+
7
+ <%= projectOverview %>
4
8
 
5
9
  ## 1. 全局契约
6
10
 
11
+ ### AI 文件落点
12
+
13
+ - 只在 workspace 根保留本文件(唯一真源)与 `CLAUDE.md`(一行指针);**子工程内不得新增任何 AI 配置文件**(`AGENTS.md`、`CLAUDE.md`、`.cursorrules`、`.windsurfrules` 等),公共约定一律写在本文件里。
14
+
7
15
  ### 目录分层
8
16
 
9
17
  | 目录 | 含义 | 构建产物 |
@@ -11,6 +19,8 @@
11
19
  | `<%= appContainer %>/` | 应用,可部署 | `dist/` |
12
20
  | `<%= libContainer %>/` | 组件库,可发布 | `lib/` |
13
21
 
22
+ 两类容器目录按需生成:只有存在对应类型的工程时才出现(首次 `add-app` / `add-lib` 时自动补建),不用空目录占位。
23
+
14
24
  ### 命令契约
15
25
 
16
26
  | 命令 | 作用 |
@@ -19,10 +29,12 @@
19
29
  | `farris-cli add-app <name>` | 添加应用 |
20
30
  | `farris-cli add-lib <name>` | 添加组件库 |
21
31
  | `farris-cli create-app [name]` | 在当前位置就地创建独立工程(不要用于 workspace 内) |
22
- | `farris-cli workspace create [target]` | workspace 初始化(等价于 create) |
32
+ | `farris-cli workspace create [target]` | `create` 的适配器(参数与行为一致) |
23
33
  | `farris-cli workspace verify` | 校验 workspace 规范 |
24
34
 
25
- ### 根脚本
35
+ - 改动 workspace 结构、根脚本、容器、配置或增删工程后,执行 `pnpm verify` 自检,不通过先修复再提交。
36
+
37
+ ### 命令速查
26
38
 
27
39
  <%= commandTable %>
28
40
 
@@ -30,13 +42,20 @@
30
42
 
31
43
  - 依赖版本统一由根 `pnpm-workspace.yaml` 的 `catalog:` 提供;子工程里属于 catalog 的依赖一律写 `"catalog:"`。
32
44
  - 禁止手工 `npm install` 单个子包;禁止手改 `pnpm-workspace.yaml` 的 `packages` glob 或 `catalog` 版本。
33
- - 根脚本一律 `pnpm --recursive --if-present run <script>`。**根目录没有 `dev` / `preview` 是有意为之**:长驻服务不递归执行,避免多工程抢端口、日志交织。
45
+ - 除 `verify` / `add-app` / `add-lib` 是 CLI 转发外,其余根脚本一律 `pnpm --recursive --if-present run <script>`。**根目录没有 `dev` / `preview` 是有意为之**:长驻服务不递归执行,避免多工程抢端口、日志交织。
34
46
 
35
47
  ### 数据来源与 Mock
36
48
 
37
- - 开发期接口数据默认来自工程内 `mock/` 目录,写法与行为见该目录 README;未命中请求按 `farris.config.mjs` 的 `proxy` 转发,联调真实后端执行 `pnpm dev --no-mock`,业务代码不改动。
49
+ - 开发期接口数据默认来自工程内 `mock/` 目录,写法与行为见该目录 README;未命中请求按 `farris.config.mjs` 的 `proxy` 转发,联调真实后端在**工程目录内**执行 `pnpm dev --no-mock`,业务代码不改动。
38
50
  - 请求路径必须与 mock 的 url 逐字一致;禁止在组件内散落假数据;mock 不得进入构建产物。
39
51
 
52
+ ### 工程内生成器
53
+
54
+ - `farris-cli generate view <name> [--with-route] [--with-props]`:生成页面;`--with-route` 自动注册路由。
55
+ - `farris-cli generate component <name> [--style none|css|scss]`:生成 `src/components/` 通用组件。
56
+ - `farris-cli generate api <name> -e /api/v1/orders [-m get]`:生成 `src/api/` 接口模块。
57
+ - 路由注册依赖 `src/router/index.ts`(或 `src/router/routes.ts`)中的 `routes = [...]` 赋值形式数组;自己重写 router 必须保留该形式,否则 `--with-route` 不会生效。
58
+
40
59
  ## 2. 工程类型差异速查表
41
60
 
42
61
  | 关注点 | 应用 `<%= appContainer %>/<name>` | 组件库 `<%= libContainer %>/<name>` |
@@ -12,6 +12,8 @@
12
12
  └── package.json # 根脚本
13
13
  ```
14
14
 
15
+ 两类容器目录按需生成:只有存在对应类型的工程时才出现(首次 `add-app` / `add-lib` 时自动补建),不会被空目录占位。
16
+
15
17
  ## 快速上手
16
18
 
17
19
  ```bash
@@ -1,10 +1,3 @@
1
- import type { App } from 'vue';
2
- import { Button } from './button';
3
-
4
- export { Button };
5
-
6
- export default {
7
- install(app: App) {
8
- app.use(Button);
9
- }
10
- };
1
+ // 发布物唯一入口(当前为空组件仓库)。
2
+ // 在 components/ 下新增组件后,在此做命名导出;需要全局安装时可用 ../components/common 的 withInstall 包装。
3
+ export {};
@@ -0,0 +1,8 @@
1
+ import { defineComponent } from 'vue';
2
+
3
+ export default defineComponent({
4
+ name: 'App',
5
+ setup() {
6
+ return () => <p>这是一个空组件仓库。在 components/ 下添加组件后,可在此预览。</p>;
7
+ }
8
+ });
@@ -1,5 +1,5 @@
1
1
  import { createApp } from 'vue';
2
- import App from './App.vue';
2
+ import App from './App';
3
3
 
4
4
  import.meta.glob('../components/**/*.scss', { eager: true });
5
5
 
@@ -0,0 +1,9 @@
1
+ import { describe, expect, it } from 'vitest';
2
+
3
+ describe('component library entry', () => {
4
+ it('provides an empty publish entry', async () => {
5
+ const entry = await import('../components/index');
6
+
7
+ expect(entry).toBeDefined();
8
+ });
9
+ });
@@ -0,0 +1,9 @@
1
+ import { describe, expect, it } from 'vitest';
2
+
3
+ describe('component library entry (tsx collection)', () => {
4
+ it('is collected by the unified vitest include', async () => {
5
+ const entry = await import('../components/index');
6
+
7
+ expect(entry).toBeDefined();
8
+ });
9
+ });
@@ -0,0 +1,21 @@
1
+ import { defineComponent } from 'vue';
2
+ import { RouterLink, RouterView } from 'vue-router';
3
+
4
+ export default defineComponent({
5
+ name: 'App',
6
+ setup() {
7
+ return () => (
8
+ <>
9
+ <header>
10
+ <div class="wrapper">
11
+ <nav>
12
+ <RouterLink to="/">Home</RouterLink>
13
+ <RouterLink to="/about">About</RouterLink>
14
+ </nav>
15
+ </div>
16
+ </header>
17
+ <RouterView />
18
+ </>
19
+ );
20
+ }
21
+ });
@@ -0,0 +1,9 @@
1
+ import { defineComponent } from 'vue';
2
+ import { Button } from '@farris/mobile-ui-vue';
3
+
4
+ export default defineComponent({
5
+ name: 'TheButton',
6
+ setup() {
7
+ return () => <Button>按钮</Button>;
8
+ }
9
+ });
@@ -1,7 +1,7 @@
1
1
  import { createApp, type App as VueApp } from 'vue';
2
2
  import FarrisVue from '@farris/mobile-ui-vue';
3
3
  import '@farris/mobile-ui-vue/style.css';
4
- import App from './App.vue';
4
+ import App from './App';
5
5
  import router from './router';<%= styleImport %>
6
6
  import { localResources } from './locales';
7
7
 
@@ -6,12 +6,12 @@ export const routes: RouteRecordRaw[] = [
6
6
  {
7
7
  path: '/',
8
8
  name: 'Home',
9
- component: () => import('../views/HomeView.vue')
9
+ component: () => import('../views/HomeView')
10
10
  },
11
11
  {
12
12
  path: '/about',
13
13
  name: 'About',
14
- component: () => import('../views/AboutView.vue')
14
+ component: () => import('../views/AboutView')
15
15
  }
16
16
  ];
17
17
 
@@ -0,0 +1,12 @@
1
+ import { defineComponent } from 'vue';
2
+
3
+ export default defineComponent({
4
+ name: 'AboutView',
5
+ setup() {
6
+ return () => (
7
+ <div class="about">
8
+ <h1>This is an about page</h1>
9
+ </div>
10
+ );
11
+ }
12
+ });
@@ -0,0 +1,13 @@
1
+ import { defineComponent } from 'vue';
2
+ import TheButton from '../components/TheButton';
3
+
4
+ export default defineComponent({
5
+ name: 'HomeView',
6
+ setup() {
7
+ return () => (
8
+ <main>
9
+ <TheButton />
10
+ </main>
11
+ );
12
+ }
13
+ });
@@ -1,12 +1,12 @@
1
1
  import { mount } from '@vue/test-utils';
2
2
  import { describe, expect, it } from 'vitest';
3
- import TheButton from '../../../src/components/TheButton.vue';
3
+ import TheButton from '../../../src/components/TheButton';
4
4
 
5
5
  describe('TheButton', () => {
6
6
  it('mounts and renders its default slot', () => {
7
7
  const wrapper = mount(TheButton, {
8
8
  global: {
9
- stubs: { 'fm-button': { template: '<button><slot /></button>' } }
9
+ stubs: { FmButton: { template: '<button><slot /></button>' } }
10
10
  }
11
11
  });
12
12
 
@@ -1,12 +1,12 @@
1
1
  import { mount } from '@vue/test-utils';
2
2
  import { describe, expect, it } from 'vitest';
3
- import TheButton from '../../../src/components/TheButton.vue';
3
+ import TheButton from '../../../src/components/TheButton';
4
4
 
5
5
  describe('TheButton (tsx collection)', () => {
6
6
  it('is collected by the unified vitest include', () => {
7
7
  const wrapper = mount(TheButton, {
8
8
  global: {
9
- stubs: { 'fm-button': { template: '<button><slot /></button>' } }
9
+ stubs: { FmButton: { template: '<button><slot /></button>' } }
10
10
  }
11
11
  });
12
12
 
@@ -0,0 +1,25 @@
1
+ import { defineComponent } from 'vue';
2
+ import { RouterLink, RouterView } from 'vue-router';
3
+ import { setupMicroAppContext } from './micro/context';
4
+
5
+ export default defineComponent({
6
+ name: 'App',
7
+ setup() {
8
+ // 微前端环境:订阅主应用下发的上下文(语言 / 主题)
9
+ setupMicroAppContext();
10
+
11
+ return () => (
12
+ <>
13
+ <header>
14
+ <div class="wrapper">
15
+ <nav>
16
+ <RouterLink to="/">Home</RouterLink>
17
+ <RouterLink to="/about">About</RouterLink>
18
+ </nav>
19
+ </div>
20
+ </header>
21
+ <RouterView />
22
+ </>
23
+ );
24
+ }
25
+ });
@@ -0,0 +1,9 @@
1
+ import { defineComponent } from 'vue';
2
+ import { FButton } from '@farris/ui-vue';
3
+
4
+ export default defineComponent({
5
+ name: 'TheButton',
6
+ setup() {
7
+ return () => <FButton>按钮</FButton>;
8
+ }
9
+ });
@@ -1,7 +1,7 @@
1
1
  import { createApp, type App as VueApp } from 'vue';
2
2
  import FarrisVue from '@farris/ui-vue';
3
3
  import '@farris/ui-vue/index.css';
4
- import App from './App.vue';
4
+ import App from './App';
5
5
  import router from './router';<%= styleImport %>
6
6
  import { localResources } from './locales';
7
7
 
@@ -6,12 +6,12 @@ export const routes: RouteRecordRaw[] = [
6
6
  {
7
7
  path: '/',
8
8
  name: 'Home',
9
- component: () => import('../views/HomeView.vue')
9
+ component: () => import('../views/HomeView')
10
10
  },
11
11
  {
12
12
  path: '/about',
13
13
  name: 'About',
14
- component: () => import('../views/AboutView.vue')
14
+ component: () => import('../views/AboutView')
15
15
  }
16
16
  ];
17
17
 
@@ -0,0 +1,12 @@
1
+ import { defineComponent } from 'vue';
2
+
3
+ export default defineComponent({
4
+ name: 'AboutView',
5
+ setup() {
6
+ return () => (
7
+ <div class="about">
8
+ <h1>This is an about page</h1>
9
+ </div>
10
+ );
11
+ }
12
+ });
@@ -0,0 +1,13 @@
1
+ import { defineComponent } from 'vue';
2
+ import TheButton from '../components/TheButton';
3
+
4
+ export default defineComponent({
5
+ name: 'HomeView',
6
+ setup() {
7
+ return () => (
8
+ <main>
9
+ <TheButton />
10
+ </main>
11
+ );
12
+ }
13
+ });
@@ -1,12 +1,12 @@
1
1
  import { mount } from '@vue/test-utils';
2
2
  import { describe, expect, it } from 'vitest';
3
- import TheButton from '../../../src/components/TheButton.vue';
3
+ import TheButton from '../../../src/components/TheButton';
4
4
 
5
5
  describe('TheButton', () => {
6
6
  it('mounts and renders its default slot', () => {
7
7
  const wrapper = mount(TheButton, {
8
8
  global: {
9
- stubs: { 'f-button': { template: '<button><slot /></button>' } }
9
+ stubs: { FButton: { template: '<button><slot /></button>' } }
10
10
  }
11
11
  });
12
12
 
@@ -1,12 +1,12 @@
1
1
  import { mount } from '@vue/test-utils';
2
2
  import { describe, expect, it } from 'vitest';
3
- import TheButton from '../../../src/components/TheButton.vue';
3
+ import TheButton from '../../../src/components/TheButton';
4
4
 
5
5
  describe('TheButton (tsx collection)', () => {
6
6
  it('is collected by the unified vitest include', () => {
7
7
  const wrapper = mount(TheButton, {
8
8
  global: {
9
- stubs: { 'f-button': { template: '<button><slot /></button>' } }
9
+ stubs: { FButton: { template: '<button><slot /></button>' } }
10
10
  }
11
11
  });
12
12
 
@@ -1,7 +0,0 @@
1
- import Button from './src/button.vue';
2
- import { withInstall } from '../common/with-install';
3
-
4
- const FButton = withInstall(Button);
5
-
6
- export { FButton as Button };
7
- export default FButton;
@@ -1,10 +0,0 @@
1
- .f-button {
2
- display: inline-flex;
3
- align-items: center;
4
- padding: 4px 12px;
5
- }
6
-
7
- .f-button--primary {
8
- color: #fff;
9
- background: #2e77e5;
10
- }
@@ -1,12 +0,0 @@
1
- <script setup lang="ts">
2
- defineOptions({ name: 'Button' });
3
- defineProps<{
4
- type?: 'primary' | 'default';
5
- }>();
6
- </script>
7
-
8
- <template>
9
- <button class="f-button" :class="{ 'f-button--primary': type === 'primary' }">
10
- <slot />
11
- </button>
12
- </template>
@@ -1,7 +0,0 @@
1
- <script setup lang="ts">
2
- import { Button } from '../components';
3
- </script>
4
-
5
- <template>
6
- <Button type="primary">Lib demo</Button>
7
- </template>
@@ -1,11 +0,0 @@
1
- import { mount } from '@vue/test-utils';
2
- import { describe, expect, it } from 'vitest';
3
- import { Button } from '../../../../components/button/index';
4
-
5
- describe('Button', () => {
6
- it('renders its default slot', () => {
7
- const wrapper = mount(Button, { slots: { default: 'OK' } });
8
-
9
- expect(wrapper.text()).toContain('OK');
10
- });
11
- });
@@ -1,11 +0,0 @@
1
- import { mount } from '@vue/test-utils';
2
- import { describe, expect, it } from 'vitest';
3
- import { Button } from '../../../../components/button/index';
4
-
5
- describe('Button (tsx collection)', () => {
6
- it('is collected by the unified vitest include', () => {
7
- const wrapper = mount(Button, { slots: { default: 'OK' } });
8
-
9
- expect(wrapper.text()).toContain('OK');
10
- });
11
- });
@@ -1,80 +0,0 @@
1
- <script setup lang="ts">
2
- import { RouterLink, RouterView } from 'vue-router';
3
- </script>
4
-
5
- <template>
6
- <header>
7
- <div class="wrapper">
8
- <nav>
9
- <RouterLink to="/">Home</RouterLink>
10
- <RouterLink to="/about">About</RouterLink>
11
- </nav>
12
- </div>
13
- </header>
14
-
15
- <RouterView />
16
- </template>
17
-
18
- <style scoped>
19
- header {
20
- line-height: 1.5;
21
- max-height: 100vh;
22
- }
23
-
24
- .logo {
25
- display: block;
26
- margin: 0 auto 2rem;
27
- }
28
-
29
- nav {
30
- width: 100%;
31
- font-size: 12px;
32
- text-align: center;
33
- margin-top: 2rem;
34
- }
35
-
36
- nav a.router-link-exact-active {
37
- color: var(--color-text);
38
- }
39
-
40
- nav a.router-link-exact-active:hover {
41
- background-color: transparent;
42
- }
43
-
44
- nav a {
45
- display: inline-block;
46
- padding: 0 1rem;
47
- border-left: 1px solid var(--color-border);
48
- }
49
-
50
- nav a:first-of-type {
51
- border: 0;
52
- }
53
-
54
- @media (min-width: 1024px) {
55
- header {
56
- display: flex;
57
- place-items: center;
58
- padding-right: calc(var(--section-gap) / 2);
59
- }
60
-
61
- .logo {
62
- margin: 0 2rem 0 0;
63
- }
64
-
65
- header .wrapper {
66
- display: flex;
67
- place-items: flex-start;
68
- flex-wrap: wrap;
69
- }
70
-
71
- nav {
72
- text-align: left;
73
- margin-left: -1rem;
74
- font-size: 1rem;
75
-
76
- padding: 1rem 0;
77
- margin-top: 1rem;
78
- }
79
- }
80
- </style>
@@ -1,3 +0,0 @@
1
- <template>
2
- <fm-button>按钮</fm-button>
3
- </template>
@@ -1,15 +0,0 @@
1
- <template>
2
- <div class="about">
3
- <h1>This is an about page</h1>
4
- </div>
5
- </template>
6
-
7
- <style>
8
- @media (min-width: 1024px) {
9
- .about {
10
- min-height: 100vh;
11
- display: flex;
12
- align-items: center;
13
- }
14
- }
15
- </style>
@@ -1,9 +0,0 @@
1
- <script setup lang="ts">
2
- import TheButton from '../components/TheButton.vue';
3
- </script>
4
-
5
- <template>
6
- <main>
7
- <TheButton />
8
- </main>
9
- </template>
@@ -1,84 +0,0 @@
1
- <script setup lang="ts">
2
- import { RouterLink, RouterView } from 'vue-router';
3
- import { setupMicroAppContext } from './micro/context';
4
-
5
- // 微前端环境:订阅主应用下发的上下文(语言 / 主题)
6
- setupMicroAppContext();
7
- </script>
8
-
9
- <template>
10
- <header>
11
- <div class="wrapper">
12
- <nav>
13
- <RouterLink to="/">Home</RouterLink>
14
- <RouterLink to="/about">About</RouterLink>
15
- </nav>
16
- </div>
17
- </header>
18
-
19
- <RouterView />
20
- </template>
21
-
22
- <style scoped>
23
- header {
24
- line-height: 1.5;
25
- max-height: 100vh;
26
- }
27
-
28
- .logo {
29
- display: block;
30
- margin: 0 auto 2rem;
31
- }
32
-
33
- nav {
34
- width: 100%;
35
- font-size: 12px;
36
- text-align: center;
37
- margin-top: 2rem;
38
- }
39
-
40
- nav a.router-link-exact-active {
41
- color: var(--color-text);
42
- }
43
-
44
- nav a.router-link-exact-active:hover {
45
- background-color: transparent;
46
- }
47
-
48
- nav a {
49
- display: inline-block;
50
- padding: 0 1rem;
51
- border-left: 1px solid var(--color-border);
52
- }
53
-
54
- nav a:first-of-type {
55
- border: 0;
56
- }
57
-
58
- @media (min-width: 1024px) {
59
- header {
60
- display: flex;
61
- place-items: center;
62
- padding-right: calc(var(--section-gap) / 2);
63
- }
64
-
65
- .logo {
66
- margin: 0 2rem 0 0;
67
- }
68
-
69
- header .wrapper {
70
- display: flex;
71
- place-items: flex-start;
72
- flex-wrap: wrap;
73
- }
74
-
75
- nav {
76
- text-align: left;
77
- margin-left: -1rem;
78
- font-size: 1rem;
79
-
80
- padding: 1rem 0;
81
- margin-top: 1rem;
82
- }
83
- }
84
- </style>
@@ -1,3 +0,0 @@
1
- <template>
2
- <f-button>按钮</f-button>
3
- </template>
@@ -1,15 +0,0 @@
1
- <template>
2
- <div class="about">
3
- <h1>This is an about page</h1>
4
- </div>
5
- </template>
6
-
7
- <style>
8
- @media (min-width: 1024px) {
9
- .about {
10
- min-height: 100vh;
11
- display: flex;
12
- align-items: center;
13
- }
14
- }
15
- </style>
@@ -1,9 +0,0 @@
1
- <script setup lang="ts">
2
- import TheButton from '../components/TheButton.vue';
3
- </script>
4
-
5
- <template>
6
- <main>
7
- <TheButton />
8
- </main>
9
- </template>