@farris/cli 2.3.0 → 2.3.2

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 (37) hide show
  1. package/lib/commands/add-project.js +2 -1
  2. package/lib/commands/add-project.js.map +1 -1
  3. package/lib/commands/build.js +2 -2
  4. package/lib/commands/build.js.map +1 -1
  5. package/lib/commands/create-app-options.js +5 -3
  6. package/lib/commands/create-app-options.js.map +1 -1
  7. package/lib/commands/create-app.js +4 -4
  8. package/lib/commands/create-app.js.map +1 -1
  9. package/lib/commands/create.js +223 -169
  10. package/lib/commands/create.js.map +1 -1
  11. package/lib/common/constant.js +20 -0
  12. package/lib/common/constant.js.map +1 -1
  13. package/lib/common/get-vite-config.js +28 -4
  14. package/lib/common/get-vite-config.js.map +1 -1
  15. package/lib/common/workspace-contract.js +2 -0
  16. package/lib/common/workspace-contract.js.map +1 -1
  17. package/lib/index.js +6 -4
  18. package/lib/index.js.map +1 -1
  19. package/package.json +87 -53
  20. package/templates/create/.gitignore.tpl +1 -0
  21. package/templates/create/package.json +1 -0
  22. package/templates/create/pnpm-workspace.yaml +1 -8
  23. package/templates/lib/package.json +3 -0
  24. package/templates/mobile/.gitignore.tpl +1 -0
  25. package/templates/mobile/farris.config.mjs +4 -0
  26. package/templates/mobile/package.json +3 -0
  27. package/templates/mobile/src/main.ts +39 -5
  28. package/templates/mobile/src/micro-app.d.ts +20 -0
  29. package/templates/mobile/src/router/index.ts +3 -2
  30. package/templates/web/.gitignore.tpl +1 -0
  31. package/templates/web/farris.config.mjs +4 -0
  32. package/templates/web/package.json +3 -0
  33. package/templates/web/src/App.vue +4 -0
  34. package/templates/web/src/main.ts +39 -5
  35. package/templates/web/src/micro/context.ts +26 -0
  36. package/templates/web/src/micro-app.d.ts +20 -0
  37. package/templates/web/src/router/index.ts +3 -2
@@ -12,6 +12,7 @@ import { appTemplateFilter, buildTemplateVariables } from '../common/generate-ap
12
12
  import { collectTemplateOutputPaths, renderTemplateDir } from '../common/template-renderer.js';
13
13
  import { Transaction } from '../common/transaction.js';
14
14
  import { verifyWorkspace } from '../common/verifier.js';
15
+ import { DEFAULT_APP_FORMAT } from './create-app-options.js';
15
16
  import { createSpinner, fail, logWarn, printNextSteps, printSuccess, sendJson, setJsonMode } from '../common/output.js';
16
17
  const DEFAULT_LIB_FORMATS = ['es', 'cjs', 'umd'];
17
18
  function projectKindLabel(type) {
@@ -90,7 +91,7 @@ export async function addProject(type, nameArg, options = {}) {
90
91
  packageName: name,
91
92
  title: options.title,
92
93
  style,
93
- format: options.format ?? 'es',
94
+ format: options.format ?? DEFAULT_APP_FORMAT,
94
95
  formats: type === 'lib' ? parseFormats(options.formats) : undefined,
95
96
  platform: type === 'app' ? platform : undefined
96
97
  });
@@ -1 +1 @@
1
- {"version":3,"file":"add-project.js","sourceRoot":"","sources":["../../src/commands/add-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-project.js","sourceRoot":"","sources":["../../src/commands/add-project.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,13 @@ import { build, mergeConfig, loadConfigFromFile } from 'vite';
2
2
  import { getViteConfig } from '../common/get-vite-config.js';
3
3
  import { createAppPackageJson } from '../plugins/create-app-package-json.js';
4
4
  export async function buildCommon(options, loadFile = true) {
5
- const { configFile, viteConfigFile, config = {}, type, base, mode = 'production', emitPackage } = options;
5
+ const { configFile, viteConfigFile, config = {}, type, base, mode = 'production', emitPackage, format, outDir } = options;
6
6
  if (!loadFile) {
7
7
  await build(config);
8
8
  return config;
9
9
  }
10
10
  const viteConfig = await loadConfigFromFile({ command: 'build', mode }, viteConfigFile);
11
- const defaultConfig = await getViteConfig(type, configFile, { base, mode });
11
+ const defaultConfig = await getViteConfig(type, configFile, { base, mode, format, outDir });
12
12
  const plugins = [...(config.plugins ?? [])];
13
13
  if (emitPackage && type === 'app') {
14
14
  plugins.push(createAppPackageJson());
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAa7E,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B,EAAE,QAAQ,GAAG,IAAI;IAC5E,MAAM,EACJ,UAAU,EACV,cAAc,EACd,MAAM,GAAG,EAAE,EACX,IAAI,EACJ,IAAI,EACJ,IAAI,GAAG,YAAY,EACnB,WAAW,EACZ,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC;KACf;IAED,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;IAExF,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5E,MAAM,OAAO,GAAU,CAAC,GAAG,CAAE,MAAM,CAAC,OAAiB,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9D,IAAI,WAAW,IAAI,IAAI,KAAK,KAAK,EAAE;QACjC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;KACtC;IAED,MAAM,WAAW,GAAG,WAAW,CAC7B,WAAW,CAAC,aAAa,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EACzF,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CACvB,CAAC;IAEF,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;IAEzB,OAAO,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAiB7E,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B,EAAE,QAAQ,GAAG,IAAI;IAC5E,MAAM,EACJ,UAAU,EACV,cAAc,EACd,MAAM,GAAG,EAAE,EACX,IAAI,EACJ,IAAI,EACJ,IAAI,GAAG,YAAY,EACnB,WAAW,EACX,MAAM,EACN,MAAM,EACP,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC;KACf;IAED,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;IAExF,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5F,MAAM,OAAO,GAAU,CAAC,GAAG,CAAE,MAAM,CAAC,OAAiB,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9D,IAAI,WAAW,IAAI,IAAI,KAAK,KAAK,EAAE;QACjC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;KACtC;IAED,MAAM,WAAW,GAAG,WAAW,CAC7B,WAAW,CAAC,aAAa,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EACzF,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CACvB,CAAC;IAEF,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;IAEzB,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -1,14 +1,16 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { resolve } from 'node:path';
3
- import { ExitCode } from '../common/constant.js';
3
+ import { ALLOWED_APP_FORMATS, ExitCode } from '../common/constant.js';
4
4
  import { assertTargetInsideCwd, CreateAppError, resolvePackageName } from '../common/create-app-target.js';
5
5
  export { assertTargetInsideCwd, CreateAppError, resolvePackageName };
6
+ export { ALLOWED_APP_FORMATS };
6
7
  export const ALLOWED_TYPES = ['app', 'lib'];
7
8
  export const ALLOWED_PLATFORMS = ['web', 'mobile'];
9
+ /** lib 产物格式 */
8
10
  export const ALLOWED_FORMATS = ['es', 'cjs', 'umd', 'systemjs'];
9
11
  export const DEFAULT_NAME = 'my-project';
10
12
  export const DEFAULT_LIB_FORMATS = ['es', 'cjs', 'umd'];
11
- export const DEFAULT_APP_FORMAT = 'es';
13
+ export const DEFAULT_APP_FORMAT = 'iife';
12
14
  export const DEFAULT_PLATFORM = 'web';
13
15
  function assertAllowed(kind, value, allowed) {
14
16
  if (!allowed.includes(value)) {
@@ -34,7 +36,7 @@ export function validateCliInput(input) {
34
36
  assertAllowed('--platform', input.platform, ALLOWED_PLATFORMS);
35
37
  }
36
38
  if (input.format !== undefined) {
37
- assertAllowed('--format', input.format, ALLOWED_FORMATS);
39
+ assertAllowed('--format', input.format, ALLOWED_APP_FORMATS);
38
40
  }
39
41
  if (input.formats !== undefined) {
40
42
  parseFormatsFlag(input.formats);
@@ -1 +1 @@
1
- {"version":3,"file":"create-app-options.js","sourceRoot":"","sources":["../../src/commands/create-app-options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-app-options.js","sourceRoot":"","sources":["../../src/commands/create-app-options.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { ExitCode } from '../common/constant.js';
4
4
  import { generateApp } from '../common/generate-app.js';
5
5
  import { fail, logWarn, sendJson, setJsonMode } from '../common/output.js';
6
6
  import { findWorkspaceRoot } from '../common/project-layout.js';
7
- import { assertTargetDirectoryFree, CreateAppError, DEFAULT_LIB_FORMATS, parseFormatsFlag, resolveNonInteractiveOptions, resolvePackageName, validateCliInput } from './create-app-options.js';
7
+ import { assertTargetDirectoryFree, CreateAppError, DEFAULT_APP_FORMAT, DEFAULT_LIB_FORMATS, parseFormatsFlag, resolveNonInteractiveOptions, resolvePackageName, validateCliInput } from './create-app-options.js';
8
8
  const prompt = inquirer.createPromptModule();
9
9
  const questions = [
10
10
  {
@@ -37,9 +37,9 @@ const questions = [
37
37
  {
38
38
  type: 'list',
39
39
  name: 'format',
40
- message: 'What output format of project is this?',
41
- choices: ['es', 'umd', 'systemjs'],
42
- default: 'es',
40
+ message: 'What output format of project is this? (iife: IBP 微前端单文件产物)',
41
+ choices: ['iife', 'es', 'umd', 'systemjs'],
42
+ default: DEFAULT_APP_FORMAT,
43
43
  when: (response) => response.type === 'app'
44
44
  }
45
45
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { existsSync, mkdirSync, readFileSync, rmSync, unlinkSync, writeFileSync } from 'node:fs';
2
2
  import { basename, isAbsolute, join, relative, resolve } from 'node:path';
3
3
  import inquirer from 'inquirer';
4
- import { DEFAULT_CATALOG_VERSIONS, ExitCode, getDirname } from '../common/constant.js';
4
+ import { DEFAULT_CATALOG_VERSIONS, ExitCode, getDirname, renderCatalogEntries } from '../common/constant.js';
5
5
  import { applyCatalogDeps } from '../common/apply-catalog-deps.js';
6
6
  import { checkPlannedConflicts, inspectTarget } from '../common/safety.js';
7
7
  import { collectTemplateOutputPaths, renderTemplateDir } from '../common/template-renderer.js';
@@ -10,7 +10,7 @@ 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
12
  import { renderCommandTable, renderProjectList } from '../common/workspace-contract.js';
13
- import { ALLOWED_TYPES, DEFAULT_LIB_FORMATS, resolvePackageName } from './create-app-options.js';
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';
16
16
  const DEFAULT_APP = 'app';
@@ -20,14 +20,7 @@ function createTemplateDir() {
20
20
  function catalogVariables() {
21
21
  return {
22
22
  pnpmVersion: DEFAULT_CATALOG_VERSIONS.pnpm,
23
- farrisUiVueVersion: DEFAULT_CATALOG_VERSIONS['@farris/ui-vue'],
24
- farrisCliVersion: DEFAULT_CATALOG_VERSIONS['@farris/cli'],
25
- typescriptVersion: DEFAULT_CATALOG_VERSIONS.typescript,
26
- viteVersion: DEFAULT_CATALOG_VERSIONS.vite,
27
- vueVersion: DEFAULT_CATALOG_VERSIONS.vue,
28
- vueRouterVersion: DEFAULT_CATALOG_VERSIONS['vue-router'],
29
- vueTscVersion: DEFAULT_CATALOG_VERSIONS['vue-tsc'],
30
- sassVersion: DEFAULT_CATALOG_VERSIONS.sass
23
+ catalogEntries: renderCatalogEntries()
31
24
  };
32
25
  }
33
26
  function assertAppName(appName) {
@@ -83,181 +76,242 @@ function rootTemplateVariables(createApp, appRel, pkgType = 'app') {
83
76
  readmeBody: `pnpm workspace,可在 \`${PROJECT_CONTAINERS.app}\` / \`${PROJECT_CONTAINERS.lib}\` 下添加工程。`
84
77
  };
85
78
  }
86
- export async function create(nameArg, options = {}) {
87
- const isJson = !!options.json;
88
- setJsonMode(isJson);
89
- const skipPrompt = !!(options.yes || options.json);
90
- try {
91
- let name = (nameArg ?? options.name ?? '').trim();
92
- let createApp = options.noApp ? false : skipPrompt || options.app != null;
93
- let appName = (options.app ?? '').trim() || DEFAULT_APP;
94
- let pkgType = 'app';
95
- if (!skipPrompt) {
96
- const prompt = inquirer.createPromptModule();
97
- if (!name) {
98
- const answers = await prompt([
99
- {
100
- type: 'input',
101
- name: 'name',
102
- message: '请输入 workspace 名称',
103
- default: DEFAULT_WORKSPACE
104
- }
105
- ]);
106
- name = String(answers.name).trim() || DEFAULT_WORKSPACE;
79
+ /** 交互模式收集 workspace 名、是否建工程、工程类型与工程名;非交互直接用默认值。 */
80
+ async function resolveCreateInputs(nameArg, options) {
81
+ let name = (nameArg ?? options.name ?? '').trim();
82
+ let createApp = options.noApp ? false : !!(options.yes || options.json || options.app != null);
83
+ let appName = (options.app ?? '').trim() || DEFAULT_APP;
84
+ let pkgType = 'app';
85
+ if (options.yes || options.json) {
86
+ return {
87
+ name: name || DEFAULT_WORKSPACE,
88
+ createApp: options.noApp ? false : createApp,
89
+ appName,
90
+ pkgType
91
+ };
92
+ }
93
+ const prompt = inquirer.createPromptModule();
94
+ if (!name) {
95
+ const answers = await prompt([
96
+ {
97
+ type: 'input',
98
+ name: 'name',
99
+ message: '请输入 workspace 名称',
100
+ default: DEFAULT_WORKSPACE
107
101
  }
108
- if (!options.noApp && options.app == null) {
109
- const answers = await prompt([
110
- {
111
- type: 'confirm',
112
- name: 'createApp',
113
- message: '是否现在创建一个工程?',
114
- default: true
115
- }
116
- ]);
117
- createApp = !!answers.createApp;
118
- if (createApp) {
119
- const typeAnswers = await prompt([
120
- {
121
- type: 'list',
122
- name: 'type',
123
- message: '请选择工程类型',
124
- choices: [...ALLOWED_TYPES],
125
- default: 'app'
126
- }
127
- ]);
128
- pkgType = assertProjectType(String(typeAnswers.type));
129
- const appAnswers = await prompt([
130
- {
131
- type: 'input',
132
- name: 'appName',
133
- message: '请输入工程名称',
134
- default: DEFAULT_APP
135
- }
136
- ]);
137
- appName = String(appAnswers.appName).trim() || DEFAULT_APP;
138
- }
102
+ ]);
103
+ name = String(answers.name).trim() || DEFAULT_WORKSPACE;
104
+ }
105
+ if (!options.noApp && options.app == null) {
106
+ const answers = await prompt([
107
+ {
108
+ type: 'confirm',
109
+ name: 'createApp',
110
+ message: '是否现在创建一个工程?',
111
+ default: true
139
112
  }
113
+ ]);
114
+ createApp = !!answers.createApp;
115
+ if (createApp) {
116
+ const typeAnswers = await prompt([
117
+ {
118
+ type: 'list',
119
+ name: 'type',
120
+ message: '请选择工程类型',
121
+ choices: [...ALLOWED_TYPES],
122
+ default: 'app'
123
+ }
124
+ ]);
125
+ pkgType = assertProjectType(String(typeAnswers.type));
126
+ const appAnswers = await prompt([
127
+ {
128
+ type: 'input',
129
+ name: 'appName',
130
+ message: '请输入工程名称',
131
+ default: DEFAULT_APP
132
+ }
133
+ ]);
134
+ appName = String(appAnswers.appName).trim() || DEFAULT_APP;
140
135
  }
141
- else if (!name) {
142
- name = DEFAULT_WORKSPACE;
136
+ }
137
+ return { name, createApp, appName, pkgType };
138
+ }
139
+ /** 校验工程名并推导包名与容器内相对目录;不建工程时返回空对象。 */
140
+ function resolveAppTargets(createApp, appName, pkgType) {
141
+ if (!createApp) {
142
+ return {};
143
+ }
144
+ assertAppName(appName);
145
+ const appPackageName = resolvePackageName(appName);
146
+ assertAppName(appPackageName);
147
+ const appDir = deriveAppDir(appPackageName);
148
+ if (!appDir || !/^[a-z0-9-_]+$/.test(appDir)) {
149
+ throw new CreateAppError(`无法从工程名 "${appPackageName}" 推导出合法的子目录名`);
150
+ }
151
+ return { appPackageName, appDir, appRel: `${containerFor(pkgType)}/${appDir}` };
152
+ }
153
+ /** 写入前冲突预检(设计文档 §9.1):非交互必须显式 --force,交互可确认覆盖。 */
154
+ async function confirmRootOverwrite(conflicts, options, isJson) {
155
+ if (conflicts.length === 0 || options.force) {
156
+ return;
157
+ }
158
+ const interactive = !isJson && !(options.yes || options.json);
159
+ const shouldOverwrite = interactive &&
160
+ (await inquirer.createPromptModule()([
161
+ {
162
+ type: 'confirm',
163
+ name: 'overwrite',
164
+ message: `以下 ${conflicts.length} 个文件已存在,是否覆盖?\n${conflicts.join('\n')}`,
165
+ default: false
166
+ }
167
+ ])).overwrite;
168
+ if (!shouldOverwrite) {
169
+ throw new CreateAppError(`目标目录包含将被模板写入的文件: ${conflicts.join(', ')}。请交互确认,或显式传入 --force 覆盖。`, ExitCode.TARGET_CONFLICT);
170
+ }
171
+ }
172
+ /** 渲染根模板并补齐两个容器目录。 */
173
+ function scaffoldWorkspaceRoot(targetPath, context) {
174
+ const rootRender = renderTemplateDir({
175
+ sourceDir: createTemplateDir(),
176
+ targetDir: targetPath,
177
+ variables: {
178
+ ...catalogVariables(),
179
+ ...rootTemplateVariables(context.createApp, context.appRel, context.pkgType),
180
+ appContainer: PROJECT_CONTAINERS.app,
181
+ libContainer: PROJECT_CONTAINERS.lib,
182
+ commandTable: renderCommandTable(),
183
+ projectList: renderProjectList(context.plannedProjects),
184
+ title: context.workspaceTitle
143
185
  }
144
- if (options.noApp) {
145
- createApp = false;
186
+ });
187
+ if (rootRender.unreplacedPlaceholders.length > 0) {
188
+ throw new Error(`根模板未替换: ${rootRender.unreplacedPlaceholders.map((p) => p.placeholder).join(', ')}`);
189
+ }
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'), '');
146
197
  }
198
+ }
199
+ }
200
+ /** 渲染子工程模板、去掉子工程内的 CI 文件并把可入 catalog 的依赖改写为 catalog:。 */
201
+ function scaffoldAppProject(targetPath, context) {
202
+ const { appRel, appPackageName, pkgType, workspaceTitle, options } = context;
203
+ generateApp({
204
+ name: join(targetPath, appRel).replace(/\\/g, '/'),
205
+ packageName: appPackageName,
206
+ title: workspaceTitle,
207
+ type: pkgType,
208
+ ...(pkgType === 'lib'
209
+ ? { formats: [...DEFAULT_LIB_FORMATS] }
210
+ : {
211
+ platform: options.platform ?? 'web',
212
+ format: options.format ?? DEFAULT_APP_FORMAT,
213
+ style: options.style ?? 'css'
214
+ }),
215
+ hints: false
216
+ });
217
+ // 根目录只保留一份 .gitlab-ci.yml
218
+ const appGitlab = join(targetPath, appRel, '.gitlab-ci.yml');
219
+ if (existsSync(appGitlab)) {
220
+ unlinkSync(appGitlab);
221
+ }
222
+ const appPkgPath = join(targetPath, appRel, 'package.json');
223
+ const appPkg = JSON.parse(readFileSync(appPkgPath, 'utf8'));
224
+ applyCatalogDeps(appPkg);
225
+ writeFileSync(appPkgPath, JSON.stringify(appPkg, null, 2) + '\n');
226
+ }
227
+ async function installDependenciesIfRequested(options, targetPath, isJson) {
228
+ if (!options.install) {
229
+ return;
230
+ }
231
+ const { runPnpmInstall } = await import('./workspace/create.js');
232
+ const result = await runPnpmInstall(targetPath, isJson);
233
+ if (!result.success) {
234
+ throw new CreateAppError(result.error || 'pnpm install 失败');
235
+ }
236
+ }
237
+ function reportCreate(result) {
238
+ if (result.isJson) {
239
+ sendJson({
240
+ command: 'create',
241
+ ok: true,
242
+ name: result.workspaceTitle,
243
+ createdApp: result.createApp,
244
+ ...(result.createApp
245
+ ? {
246
+ packageName: result.targets.appPackageName,
247
+ appDir: result.targets.appRel,
248
+ type: result.targets.pkgType
249
+ }
250
+ : {}),
251
+ target: result.targetPath
252
+ });
253
+ return;
254
+ }
255
+ printSuccess(`工作空间已创建 ${result.targetPath}`);
256
+ printNextSteps({
257
+ targetArg: result.targetArg,
258
+ targetDir: result.targetPath,
259
+ cwd: result.cwd,
260
+ installed: result.installed,
261
+ appPackageName: result.targets.appPackageName
262
+ });
263
+ }
264
+ export async function create(nameArg, options = {}) {
265
+ const isJson = !!options.json;
266
+ setJsonMode(isJson);
267
+ try {
268
+ const inputs = await resolveCreateInputs(nameArg, options);
147
269
  const cwd = process.cwd();
148
- const targetArg = name;
149
- const targetPath = resolveCreateTarget(name, cwd);
270
+ const targetArg = inputs.name;
271
+ const targetPath = resolveCreateTarget(inputs.name, cwd);
150
272
  const workspaceTitle = targetArg === '.' ? basename(targetPath) : targetArg;
151
273
  const inspect = inspectTarget(targetPath);
152
274
  if (!inspect.canCreate) {
153
275
  throw new CreateAppError(`目标目录不能用于创建 workspace,状态: ${inspect.status}${inspect.conflicts.length > 0 ? `,冲突项: ${inspect.conflicts.join(', ')}` : ''}`, ExitCode.TARGET_CONFLICT);
154
276
  }
155
277
  const created = !existsSync(targetPath);
156
- let appPackageName;
157
- let appDir;
158
- let appRel;
159
- if (createApp) {
160
- assertAppName(appName);
161
- appPackageName = resolvePackageName(appName);
162
- assertAppName(appPackageName);
163
- appDir = deriveAppDir(appPackageName);
164
- if (!appDir || !/^[a-z0-9-_]+$/.test(appDir)) {
165
- throw new CreateAppError(`无法从工程名 "${appPackageName}" 推导出合法的子目录名`);
166
- }
167
- appRel = `${containerFor(pkgType)}/${appDir}`;
168
- }
169
- const plannedProjects = appRel && appDir ? [{ type: pkgType, dir: appRel, name: appDir }] : [];
170
- // 写入前冲突预检(设计文档 §9.1)。create 的子工程落在全新容器内,因此只需预检根模板。
171
- const conflicts = checkPlannedConflicts(targetPath, collectTemplateOutputPaths(createTemplateDir()));
172
- if (conflicts.length > 0 && !options.force) {
173
- const shouldOverwrite = !isJson &&
174
- !skipPrompt &&
175
- (await inquirer.createPromptModule()([
176
- {
177
- type: 'confirm',
178
- name: 'overwrite',
179
- message: `以下 ${conflicts.length} 个文件已存在,是否覆盖?\n${conflicts.join('\n')}`,
180
- default: false
181
- }
182
- ])).overwrite;
183
- if (!shouldOverwrite) {
184
- throw new CreateAppError(`目标目录包含将被模板写入的文件: ${conflicts.join(', ')}。请交互确认,或显式传入 --force 覆盖。`, ExitCode.TARGET_CONFLICT);
185
- }
186
- }
278
+ const targets = {
279
+ ...resolveAppTargets(inputs.createApp, inputs.appName, inputs.pkgType),
280
+ pkgType: inputs.pkgType
281
+ };
282
+ const plannedProjects = targets.appRel && targets.appDir
283
+ ? [{ type: inputs.pkgType, dir: targets.appRel, name: targets.appDir }]
284
+ : [];
285
+ // create 的子工程落在全新容器内,因此只需预检根模板。
286
+ await confirmRootOverwrite(checkPlannedConflicts(targetPath, collectTemplateOutputPaths(createTemplateDir())), options, isJson);
187
287
  try {
188
- const rootRender = renderTemplateDir({
189
- sourceDir: createTemplateDir(),
190
- targetDir: targetPath,
191
- variables: {
192
- ...catalogVariables(),
193
- ...rootTemplateVariables(createApp, appRel, pkgType),
194
- appContainer: PROJECT_CONTAINERS.app,
195
- libContainer: PROJECT_CONTAINERS.lib,
196
- commandTable: renderCommandTable(),
197
- projectList: renderProjectList(plannedProjects),
198
- title: workspaceTitle
199
- }
288
+ scaffoldWorkspaceRoot(targetPath, {
289
+ createApp: inputs.createApp,
290
+ appRel: targets.appRel,
291
+ pkgType: inputs.pkgType,
292
+ workspaceTitle,
293
+ plannedProjects
200
294
  });
201
- if (rootRender.unreplacedPlaceholders.length > 0) {
202
- throw new Error(`根模板未替换: ${rootRender.unreplacedPlaceholders.map((p) => p.placeholder).join(', ')}`);
203
- }
204
- // 两个容器目录必须同时存在(pnpm-workspace.yaml 的 glob 与 verifier 都要求);
205
- // 空容器放 .gitkeep 使其可见且可提交(设计文档 §4.4)。
206
- for (const container of [PROJECT_CONTAINERS.app, PROJECT_CONTAINERS.lib]) {
207
- const containerDir = join(targetPath, container);
208
- mkdirSync(containerDir, { recursive: true });
209
- if (!appRel || !appRel.startsWith(`${container}/`)) {
210
- writeFileSync(join(containerDir, '.gitkeep'), '');
211
- }
212
- }
213
- if (createApp && appRel && appPackageName) {
214
- generateApp({
215
- name: join(targetPath, appRel).replace(/\\/g, '/'),
216
- packageName: appPackageName,
217
- title: workspaceTitle,
218
- type: pkgType,
219
- ...(pkgType === 'lib'
220
- ? { formats: [...DEFAULT_LIB_FORMATS] }
221
- : { platform: options.platform ?? 'web', format: options.format ?? 'es', style: options.style ?? 'css' }),
222
- hints: false
223
- });
224
- // 根目录只保留一份 .gitlab-ci.yml
225
- const appGitlab = join(targetPath, appRel, '.gitlab-ci.yml');
226
- if (existsSync(appGitlab)) {
227
- unlinkSync(appGitlab);
228
- }
229
- const appPkgPath = join(targetPath, appRel, 'package.json');
230
- const appPkg = JSON.parse(readFileSync(appPkgPath, 'utf8'));
231
- applyCatalogDeps(appPkg);
232
- writeFileSync(appPkgPath, JSON.stringify(appPkg, null, 2) + '\n');
233
- }
234
- if (options.install) {
235
- const { runPnpmInstall } = await import('./workspace/create.js');
236
- const result = await runPnpmInstall(targetPath, isJson);
237
- if (!result.success) {
238
- throw new CreateAppError(result.error || 'pnpm install 失败');
239
- }
240
- }
241
- if (isJson) {
242
- sendJson({
243
- command: 'create',
244
- ok: true,
245
- name: workspaceTitle,
246
- createdApp: createApp,
247
- ...(createApp ? { packageName: appPackageName, appDir: appRel, type: pkgType } : {}),
248
- target: targetPath
249
- });
250
- }
251
- else {
252
- printSuccess(`工作空间已创建 ${targetPath}`);
253
- printNextSteps({
254
- targetArg,
255
- targetDir: targetPath,
256
- cwd,
257
- installed: !!options.install,
258
- appPackageName
295
+ if (inputs.createApp && targets.appRel && targets.appPackageName) {
296
+ scaffoldAppProject(targetPath, {
297
+ appRel: targets.appRel,
298
+ appPackageName: targets.appPackageName,
299
+ pkgType: inputs.pkgType,
300
+ workspaceTitle,
301
+ options
259
302
  });
260
303
  }
304
+ await installDependenciesIfRequested(options, targetPath, isJson);
305
+ reportCreate({
306
+ isJson,
307
+ workspaceTitle,
308
+ createApp: inputs.createApp,
309
+ targets,
310
+ targetPath,
311
+ targetArg,
312
+ cwd,
313
+ installed: !!options.install
314
+ });
261
315
  }
262
316
  catch (inner) {
263
317
  if (created && existsSync(targetPath)) {