@farris/cli 2.2.0 → 2.2.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 (38) hide show
  1. package/lib/commands/build-components.js +3 -1
  2. package/lib/commands/build-components.js.map +1 -1
  3. package/lib/commands/create-app-options.js +9 -9
  4. package/lib/commands/create-app-options.js.map +1 -1
  5. package/lib/commands/create-app.js +7 -4
  6. package/lib/commands/create-app.js.map +1 -1
  7. package/lib/commands/create-options.js +30 -0
  8. package/lib/commands/create-options.js.map +1 -0
  9. package/lib/commands/create.js +225 -0
  10. package/lib/commands/create.js.map +1 -0
  11. package/lib/common/apply-catalog-deps.js +16 -0
  12. package/lib/common/apply-catalog-deps.js.map +1 -0
  13. package/lib/common/create-app-target.js +47 -0
  14. package/lib/common/create-app-target.js.map +1 -0
  15. package/lib/common/generate-app.js +49 -18
  16. package/lib/common/generate-app.js.map +1 -1
  17. package/lib/common/lib-package-exports.js +10 -6
  18. package/lib/common/lib-package-exports.js.map +1 -1
  19. package/lib/index.js +21 -1
  20. package/lib/index.js.map +1 -1
  21. package/lib/plugins/create-package-json.js +5 -5
  22. package/lib/plugins/create-package-json.js.map +1 -1
  23. package/package.json +8 -3
  24. package/templates/create/.gitlab-ci.yml +58 -0
  25. package/templates/create/README.md +9 -0
  26. package/templates/create/package.json +13 -0
  27. package/templates/create/pnpm-workspace.yaml +12 -0
  28. package/templates/lib/.gitlab-ci.yml +0 -23
  29. package/templates/lib/README.md +1 -1
  30. package/templates/lib/components/button/button.spec.ts +4 -2
  31. package/templates/lib/farris.config.mjs +6 -1
  32. package/templates/lib/package.json +4 -2
  33. package/templates/lib/src/main.ts +2 -0
  34. package/templates/lib/vitest.config.ts +1 -0
  35. package/templates/mobile/.gitlab-ci.yml +0 -23
  36. package/templates/mobile/package.json +2 -2
  37. package/templates/web/.gitlab-ci.yml +0 -23
  38. package/templates/web/package.json +2 -2
@@ -14,7 +14,9 @@ export async function buildComponents(options) {
14
14
  }
15
15
  const componentOutDir = farris.componentOutDir || './package/components';
16
16
  const outDir = farris.outDir || 'lib';
17
- const entry = Object.fromEntries(names.map((name) => [name, resolve(CWD, 'components', name, 'index.ts')]));
17
+ // Relative to Vite root. Absolute Windows paths get realpath'd (f: → F:)
18
+ // and break plugin-vue SFC subrequests.
19
+ const entry = Object.fromEntries(names.map((name) => [name, `components/${name}/index.ts`]));
18
20
  const spinner = ora('build components begin').start();
19
21
  spinner.text = 'building components';
20
22
  await buildCommon({
@@ -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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"}
@@ -1,22 +1,17 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { resolve } from 'node:path';
3
3
  import { ExitCode } from '../common/constant.js';
4
+ import { assertTargetInsideCwd, CreateAppError, resolvePackageName } from '../common/create-app-target.js';
4
5
  import { toProjectPackageName } from '../common/project-package-name.js';
5
6
  export { toProjectPackageName };
7
+ export { assertTargetInsideCwd, CreateAppError, resolvePackageName };
6
8
  export const ALLOWED_TYPES = ['app', 'lib'];
7
9
  export const ALLOWED_PLATFORMS = ['web', 'mobile'];
8
- export const ALLOWED_FORMATS = ['es', 'umd', 'systemjs'];
10
+ export const ALLOWED_FORMATS = ['es', 'cjs', 'umd', 'systemjs'];
9
11
  export const DEFAULT_NAME = 'my-project';
10
- export const DEFAULT_LIB_FORMATS = ['es', 'umd'];
12
+ export const DEFAULT_LIB_FORMATS = ['es', 'cjs', 'umd'];
11
13
  export const DEFAULT_APP_FORMAT = 'es';
12
14
  export const DEFAULT_PLATFORM = 'web';
13
- export class CreateAppError extends Error {
14
- constructor(message, exitCode = ExitCode.GENERAL_ERROR) {
15
- super(message);
16
- this.name = 'CreateAppError';
17
- this.exitCode = exitCode;
18
- }
19
- }
20
15
  function assertAllowed(kind, value, allowed) {
21
16
  if (!allowed.includes(value)) {
22
17
  throw new CreateAppError(`非法的 ${kind}: ${value},允许值为 ${allowed.join(', ')}`);
@@ -53,21 +48,26 @@ export function resolveNonInteractiveOptions(input) {
53
48
  throw new CreateAppError('--type 在使用 -y / --yes 或 --json 时必填');
54
49
  }
55
50
  const name = input.name && input.name.trim() !== '' ? input.name : DEFAULT_NAME;
51
+ assertTargetInsideCwd(name);
52
+ const packageName = resolvePackageName(name);
56
53
  if (input.type === 'lib') {
57
54
  return {
58
55
  name,
56
+ packageName,
59
57
  type: 'lib',
60
58
  formats: parseFormatsFlag(input.formats) ?? [...DEFAULT_LIB_FORMATS]
61
59
  };
62
60
  }
63
61
  return {
64
62
  name,
63
+ packageName,
65
64
  type: 'app',
66
65
  platform: input.platform ?? DEFAULT_PLATFORM,
67
66
  format: input.format ?? DEFAULT_APP_FORMAT
68
67
  };
69
68
  }
70
69
  export function assertTargetDirectoryFree(name, cwd = process.cwd()) {
70
+ assertTargetInsideCwd(name, cwd);
71
71
  if (existsSync(resolve(cwd, name))) {
72
72
  throw new CreateAppError(`目标目录已存在: ${name}`, ExitCode.TARGET_CONFLICT);
73
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-app-options.js","sourceRoot":"","sources":["../../src/commands/create-app-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;AACrD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAC;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAU,CAAC;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC;AACzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAYtC,MAAM,OAAO,cAAe,SAAQ,KAAK;IAGvC,YAAY,OAAe,EAAE,WAAqB,QAAQ,CAAC,aAAa;QACtE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,KAAa,EAAE,OAA0B;IAC5E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,cAAc,CAAC,OAAO,IAAI,KAAK,KAAK,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAClD,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAwB;IACvD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAwB;IACnE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,IAAI,cAAc,CAAC,oCAAoC,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;IAChF,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC;SACrE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,gBAAgB;QAC5C,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,kBAAkB;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;IACjF,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,cAAc,CAAC,YAAY,IAAI,EAAE,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"create-app-options.js","sourceRoot":"","sources":["../../src/commands/create-app-options.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import inquirer from 'inquirer';
3
3
  import { ExitCode } from '../common/constant.js';
4
4
  import { generateApp } from '../common/generate-app.js';
5
5
  import { fail, sendJson, setJsonMode } from '../common/output.js';
6
- import { assertTargetDirectoryFree, CreateAppError, parseFormatsFlag, resolveNonInteractiveOptions, validateCliInput } from './create-app-options.js';
6
+ import { assertTargetDirectoryFree, CreateAppError, DEFAULT_LIB_FORMATS, parseFormatsFlag, resolveNonInteractiveOptions, resolvePackageName, validateCliInput } from './create-app-options.js';
7
7
  const prompt = inquirer.createPromptModule();
8
8
  const questions = [
9
9
  {
@@ -29,8 +29,8 @@ const questions = [
29
29
  type: 'checkbox',
30
30
  name: 'formats',
31
31
  message: 'What output format of project is this?',
32
- choices: ['es', 'umd', 'systemjs'],
33
- default: ['es', 'umd'],
32
+ choices: ['es', 'cjs', 'umd', 'systemjs'],
33
+ default: [...DEFAULT_LIB_FORMATS],
34
34
  when: (response) => response.type === 'lib'
35
35
  },
36
36
  {
@@ -43,11 +43,13 @@ const questions = [
43
43
  }
44
44
  ];
45
45
  function toGenerateOptions(answers) {
46
+ const packageName = resolvePackageName(answers.name);
46
47
  if (answers.type === 'lib') {
47
- return { name: answers.name, type: 'lib', formats: answers.formats };
48
+ return { name: answers.name, packageName, type: 'lib', formats: answers.formats };
48
49
  }
49
50
  return {
50
51
  name: answers.name,
52
+ packageName,
51
53
  type: 'app',
52
54
  platform: answers.platform,
53
55
  format: answers.format
@@ -77,6 +79,7 @@ function emitCreateAppJson(options) {
77
79
  command: 'create-app',
78
80
  ok: true,
79
81
  name: options.name,
82
+ ...(options.packageName ? { packageName: options.packageName } : {}),
80
83
  type: options.type,
81
84
  ...(options.platform ? { platform: options.platform } : {}),
82
85
  ...(options.format ? { format: options.format } : {}),
@@ -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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"}
@@ -0,0 +1,30 @@
1
+ export function parseCreateArgv(argv) {
2
+ const options = {};
3
+ let name;
4
+ for (let i = 0; i < argv.length; i++) {
5
+ const arg = argv[i];
6
+ if (arg === '--json') {
7
+ options.json = true;
8
+ }
9
+ else if (arg === '--install') {
10
+ options.install = true;
11
+ }
12
+ else if (arg === '-y' || arg === '--yes') {
13
+ options.yes = true;
14
+ }
15
+ else if (arg === '--no-app') {
16
+ options.noApp = true;
17
+ }
18
+ else if (arg === '--app') {
19
+ options.app = argv[++i];
20
+ }
21
+ else if (arg.startsWith('--app=')) {
22
+ options.app = arg.slice('--app='.length);
23
+ }
24
+ else if (!arg.startsWith('-')) {
25
+ name = arg;
26
+ }
27
+ }
28
+ return { name, options };
29
+ }
30
+ //# sourceMappingURL=create-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-options.js","sourceRoot":"","sources":["../../src/commands/create-options.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,IAAwB,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,GAAG,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,225 @@
1
+ import { existsSync, mkdirSync, readFileSync, rmSync, unlinkSync, writeFileSync } from 'node:fs';
2
+ import { join, resolve } from 'node:path';
3
+ import inquirer from 'inquirer';
4
+ import { ExitCode, DEFAULT_CATALOG_VERSIONS, getDirname } from '../common/constant.js';
5
+ import { applyCatalogDeps } from '../common/apply-catalog-deps.js';
6
+ import { generateApp } from '../common/generate-app.js';
7
+ import { fail, logInfo, sendJson, setJsonMode } from '../common/output.js';
8
+ import { renderTemplateDir } from '../common/template-renderer.js';
9
+ import { ALLOWED_TYPES, assertTargetDirectoryFree, CreateAppError, DEFAULT_LIB_FORMATS, resolvePackageName } from './create-app-options.js';
10
+ export { parseCreateArgv } from './create-options.js';
11
+ const DEFAULT_WORKSPACE = 'my-workspace';
12
+ const DEFAULT_APP = 'app';
13
+ function createTemplateDir() {
14
+ return resolve(getDirname(import.meta.url), '../../templates/create');
15
+ }
16
+ function catalogVariables() {
17
+ return {
18
+ pnpmVersion: DEFAULT_CATALOG_VERSIONS.pnpm,
19
+ farrisUiVueVersion: DEFAULT_CATALOG_VERSIONS['@farris/ui-vue'],
20
+ farrisCliVersion: DEFAULT_CATALOG_VERSIONS['@farris/cli'],
21
+ typescriptVersion: DEFAULT_CATALOG_VERSIONS.typescript,
22
+ viteVersion: DEFAULT_CATALOG_VERSIONS.vite,
23
+ vueVersion: DEFAULT_CATALOG_VERSIONS.vue,
24
+ vueRouterVersion: DEFAULT_CATALOG_VERSIONS['vue-router'],
25
+ vueTscVersion: DEFAULT_CATALOG_VERSIONS['vue-tsc'],
26
+ sassVersion: DEFAULT_CATALOG_VERSIONS.sass
27
+ };
28
+ }
29
+ function assertAppName(appName) {
30
+ const trimmed = appName.trim();
31
+ if (!trimmed || trimmed === '.' || trimmed === '..') {
32
+ throw new CreateAppError('应用名称不能为空或为 . / ..');
33
+ }
34
+ if (trimmed.includes('/') || trimmed.includes('\\') || trimmed.includes('\0')) {
35
+ throw new CreateAppError(`应用名称必须是单段目录名: ${appName}`);
36
+ }
37
+ }
38
+ function assertProjectType(type) {
39
+ if (!ALLOWED_TYPES.includes(type)) {
40
+ throw new CreateAppError(`非法的工程类型: ${type},允许值为 ${ALLOWED_TYPES.join(', ')}`);
41
+ }
42
+ return type;
43
+ }
44
+ function rootTemplateVariables(createApp, appRel, pkgType = 'app') {
45
+ if (createApp && appRel) {
46
+ const artifactDir = pkgType === 'lib' ? `${appRel}/lib` : `${appRel}/dist`;
47
+ const publishSteps = pkgType === 'lib'
48
+ ? [' - cd dist', ' - npm publish']
49
+ : [
50
+ ` - cp ${appRel}/project.json dist/package.json`,
51
+ ' - cd dist',
52
+ ' - npm publish'
53
+ ];
54
+ return {
55
+ rootDevScript: `pnpm --filter ./${appRel} run dev`,
56
+ rootBuildScript: `pnpm --filter ./${appRel} run build`,
57
+ rootTestScript: `pnpm --filter ./${appRel} run test`,
58
+ ciBuildSteps: [
59
+ ` - pnpm --filter ./${appRel} run build`,
60
+ ' - mkdir -p dist',
61
+ ` - cp -r ${artifactDir}/. dist/`
62
+ ].join('\n'),
63
+ ciPublishSteps: publishSteps.join('\n'),
64
+ readmeBody: `pnpm workspace with one Farris ${pkgType} in \`${appRel}\`.`
65
+ };
66
+ }
67
+ return {
68
+ rootDevScript: 'pnpm --recursive --if-present run dev',
69
+ rootBuildScript: 'pnpm --recursive --if-present run build',
70
+ rootTestScript: 'pnpm --recursive --if-present run test',
71
+ ciBuildSteps: '',
72
+ ciPublishSteps: ' - echo "no app to publish"',
73
+ readmeBody: 'pnpm workspace. Add an app under `packages/`.'
74
+ };
75
+ }
76
+ export async function create(nameArg, options = {}) {
77
+ const isJson = !!options.json;
78
+ setJsonMode(isJson);
79
+ const skipPrompt = !!(options.yes || options.json);
80
+ try {
81
+ let name = (nameArg ?? options.name ?? '').trim();
82
+ let createApp = options.noApp ? false : skipPrompt || options.app != null;
83
+ let appName = (options.app ?? '').trim() || DEFAULT_APP;
84
+ let pkgType = 'app';
85
+ if (!skipPrompt) {
86
+ const prompt = inquirer.createPromptModule();
87
+ if (!name) {
88
+ const answers = await prompt([
89
+ {
90
+ type: 'input',
91
+ name: 'name',
92
+ message: '请输入 workspace 名称',
93
+ default: DEFAULT_WORKSPACE
94
+ }
95
+ ]);
96
+ name = String(answers.name).trim() || DEFAULT_WORKSPACE;
97
+ }
98
+ if (!options.noApp && options.app == null) {
99
+ const answers = await prompt([
100
+ {
101
+ type: 'confirm',
102
+ name: 'createApp',
103
+ message: '是否现在创建一个工程?',
104
+ default: true
105
+ }
106
+ ]);
107
+ createApp = !!answers.createApp;
108
+ if (createApp) {
109
+ const typeAnswers = await prompt([
110
+ {
111
+ type: 'list',
112
+ name: 'type',
113
+ message: '请选择工程类型',
114
+ choices: [...ALLOWED_TYPES],
115
+ default: 'app'
116
+ }
117
+ ]);
118
+ pkgType = assertProjectType(String(typeAnswers.type));
119
+ const appAnswers = await prompt([
120
+ {
121
+ type: 'input',
122
+ name: 'appName',
123
+ message: '请输入工程名称',
124
+ default: DEFAULT_APP
125
+ }
126
+ ]);
127
+ appName = String(appAnswers.appName).trim() || DEFAULT_APP;
128
+ }
129
+ }
130
+ }
131
+ else if (!name) {
132
+ name = DEFAULT_WORKSPACE;
133
+ }
134
+ if (options.noApp) {
135
+ createApp = false;
136
+ }
137
+ assertTargetDirectoryFree(name);
138
+ const cwd = process.cwd();
139
+ const targetPath = resolve(cwd, name);
140
+ const created = !existsSync(targetPath);
141
+ let appPackageName;
142
+ let appRel;
143
+ if (createApp) {
144
+ assertAppName(appName);
145
+ appPackageName = resolvePackageName(appName);
146
+ assertAppName(appPackageName);
147
+ appRel = `packages/${appPackageName}`;
148
+ }
149
+ try {
150
+ const rootRender = renderTemplateDir({
151
+ sourceDir: createTemplateDir(),
152
+ targetDir: targetPath,
153
+ variables: {
154
+ ...catalogVariables(),
155
+ title: name,
156
+ ...rootTemplateVariables(createApp, appRel, pkgType)
157
+ }
158
+ });
159
+ if (rootRender.unreplacedPlaceholders.length > 0) {
160
+ throw new Error(`根模板未替换: ${rootRender.unreplacedPlaceholders.map((p) => p.placeholder).join(', ')}`);
161
+ }
162
+ if (createApp && appRel && appPackageName) {
163
+ generateApp({
164
+ name: join(name, appRel).replace(/\\/g, '/'),
165
+ packageName: appPackageName,
166
+ type: pkgType,
167
+ ...(pkgType === 'lib'
168
+ ? { formats: [...DEFAULT_LIB_FORMATS] }
169
+ : { platform: 'web', format: 'es' }),
170
+ hints: false
171
+ });
172
+ const appGitlab = join(targetPath, appRel, '.gitlab-ci.yml');
173
+ if (existsSync(appGitlab)) {
174
+ unlinkSync(appGitlab);
175
+ }
176
+ const appPkgPath = join(targetPath, appRel, 'package.json');
177
+ const appPkg = JSON.parse(readFileSync(appPkgPath, 'utf8'));
178
+ applyCatalogDeps(appPkg);
179
+ writeFileSync(appPkgPath, JSON.stringify(appPkg, null, 2) + '\n');
180
+ }
181
+ else {
182
+ mkdirSync(join(targetPath, 'packages'), { recursive: true });
183
+ }
184
+ if (options.install) {
185
+ const { runPnpmInstall } = await import('./workspace/create.js');
186
+ const result = await runPnpmInstall(targetPath, isJson);
187
+ if (!result.success) {
188
+ throw new CreateAppError(result.error || 'pnpm install 失败');
189
+ }
190
+ }
191
+ if (!isJson) {
192
+ logInfo(`cd ${name}`);
193
+ logInfo('pnpm install');
194
+ if (createApp) {
195
+ logInfo('pnpm dev');
196
+ }
197
+ }
198
+ else {
199
+ sendJson({
200
+ command: 'create',
201
+ ok: true,
202
+ name,
203
+ createdApp: createApp,
204
+ ...(createApp ? { packageName: appPackageName, appDir: appRel, type: pkgType } : {}),
205
+ target: targetPath
206
+ });
207
+ }
208
+ }
209
+ catch (inner) {
210
+ if (created && existsSync(targetPath)) {
211
+ rmSync(targetPath, { recursive: true, force: true });
212
+ }
213
+ throw inner;
214
+ }
215
+ }
216
+ catch (error) {
217
+ if (isJson) {
218
+ const message = error instanceof Error ? error.message : String(error);
219
+ const exitCode = error instanceof CreateAppError ? error.exitCode : ExitCode.GENERAL_ERROR;
220
+ fail({ command: 'create', error: message, exitCode });
221
+ }
222
+ throw error;
223
+ }
224
+ }
225
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,iBAAiB,GAAG,cAAc,CAAC;AACzC,MAAM,WAAW,GAAG,KAAK,CAAC;AAE1B,SAAS,iBAAiB;IACxB,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,wBAAwB,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,WAAW,EAAE,wBAAwB,CAAC,IAAI;QAC1C,kBAAkB,EAAE,wBAAwB,CAAC,gBAAgB,CAAC;QAC9D,gBAAgB,EAAE,wBAAwB,CAAC,aAAa,CAAC;QACzD,iBAAiB,EAAE,wBAAwB,CAAC,UAAU;QACtD,WAAW,EAAE,wBAAwB,CAAC,IAAI;QAC1C,UAAU,EAAE,wBAAwB,CAAC,GAAG;QACxC,gBAAgB,EAAE,wBAAwB,CAAC,YAAY,CAAC;QACxD,aAAa,EAAE,wBAAwB,CAAC,SAAS,CAAC;QAClD,WAAW,EAAE,wBAAwB,CAAC,IAAI;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,IAAI,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,cAAc,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,CAAE,aAAmC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,cAAc,CAAC,YAAY,IAAI,SAAS,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,IAAqB,CAAC;AAC/B,CAAC;AAED,SAAS,qBAAqB,CAC5B,SAAkB,EAClB,MAAe,EACf,UAAyB,KAAK;IAE9B,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC;QAC3E,MAAM,YAAY,GAChB,OAAO,KAAK,KAAK;YACf,CAAC,CAAC,CAAC,eAAe,EAAE,mBAAmB,CAAC;YACxC,CAAC,CAAC;gBACE,YAAY,MAAM,iCAAiC;gBACnD,eAAe;gBACf,mBAAmB;aACpB,CAAC;QACR,OAAO;YACL,aAAa,EAAE,mBAAmB,MAAM,UAAU;YAClD,eAAe,EAAE,mBAAmB,MAAM,YAAY;YACtD,cAAc,EAAE,mBAAmB,MAAM,WAAW;YACpD,YAAY,EAAE;gBACZ,yBAAyB,MAAM,YAAY;gBAC3C,qBAAqB;gBACrB,eAAe,WAAW,UAAU;aACrC,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YACvC,UAAU,EAAE,kCAAkC,OAAO,SAAS,MAAM,KAAK;SAC1E,CAAC;IACJ,CAAC;IACD,OAAO;QACL,aAAa,EAAE,uCAAuC;QACtD,eAAe,EAAE,yCAAyC;QAC1D,cAAc,EAAE,wCAAwC;QACxD,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,gCAAgC;QAChD,UAAU,EAAE,+CAA+C;KAC5D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAgB,EAAE,UAA0B,EAAE;IACzE,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9B,WAAW,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC;QAC1E,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC;QACxD,IAAI,OAAO,GAAkB,KAAK,CAAC;QAEnC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;oBAC3B;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,kBAAkB;wBAC3B,OAAO,EAAE,iBAAiB;qBAC3B;iBACF,CAAC,CAAC;gBACH,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,iBAAiB,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;oBAC3B;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,aAAa;wBACtB,OAAO,EAAE,IAAI;qBACd;iBACF,CAAC,CAAC;gBACH,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;gBAChC,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC;wBAC/B;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,SAAS;4BAClB,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC;4BAC3B,OAAO,EAAE,KAAK;yBACf;qBACF,CAAC,CAAC;oBACH,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBACtD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC;wBAC9B;4BACE,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,SAAS;4BAClB,OAAO,EAAE,WAAW;yBACrB;qBACF,CAAC,CAAC;oBACH,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,GAAG,iBAAiB,CAAC;QAC3B,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,cAAkC,CAAC;QACvC,IAAI,MAA0B,CAAC;QAC/B,IAAI,SAAS,EAAE,CAAC;YACd,aAAa,CAAC,OAAO,CAAC,CAAC;YACvB,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC7C,aAAa,CAAC,cAAc,CAAC,CAAC;YAC9B,MAAM,GAAG,YAAY,cAAc,EAAE,CAAC;QACxC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,iBAAiB,CAAC;gBACnC,SAAS,EAAE,iBAAiB,EAAE;gBAC9B,SAAS,EAAE,UAAU;gBACrB,SAAS,EAAE;oBACT,GAAG,gBAAgB,EAAE;oBACrB,KAAK,EAAE,IAAI;oBACX,GAAG,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;iBACrD;aACF,CAAC,CAAC;YACH,IAAI,UAAU,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CACb,WAAW,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpF,CAAC;YACJ,CAAC;YAED,IAAI,SAAS,IAAI,MAAM,IAAI,cAAc,EAAE,CAAC;gBAC1C,WAAW,CAAC;oBACV,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;oBAC5C,WAAW,EAAE,cAAc;oBAC3B,IAAI,EAAE,OAAO;oBACb,GAAG,CAAC,OAAO,KAAK,KAAK;wBACnB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,mBAAmB,CAAC,EAAE;wBACvC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;oBACtC,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAC7D,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC1B,UAAU,CAAC,SAAS,CAAC,CAAC;gBACxB,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC5D,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACzB,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;gBACjE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,IAAI,iBAAiB,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACtB,OAAO,CAAC,cAAc,CAAC,CAAC;gBACxB,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC,UAAU,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC;oBACP,OAAO,EAAE,QAAQ;oBACjB,EAAE,EAAE,IAAI;oBACR,IAAI;oBACJ,UAAU,EAAE,SAAS;oBACrB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpF,MAAM,EAAE,UAAU;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,QAAQ,GAAG,KAAK,YAAY,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC3F,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { DEFAULT_CATALOG_VERSIONS } from './constant.js';
2
+ export function applyCatalogDeps(pkg) {
3
+ const keys = Object.keys(DEFAULT_CATALOG_VERSIONS).filter((key) => key !== 'pnpm');
4
+ for (const section of ['dependencies', 'devDependencies']) {
5
+ const block = pkg[section];
6
+ if (!block || typeof block !== 'object') {
7
+ continue;
8
+ }
9
+ for (const key of keys) {
10
+ if (block[key] !== undefined) {
11
+ block[key] = 'catalog:';
12
+ }
13
+ }
14
+ }
15
+ }
16
+ //# sourceMappingURL=apply-catalog-deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-catalog-deps.js","sourceRoot":"","sources":["../../src/common/apply-catalog-deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,UAAU,gBAAgB,CAAC,GAAwB;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;IACnF,KAAK,MAAM,OAAO,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAU,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,SAAS;QACX,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7B,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { isAbsolute, relative, resolve } from 'node:path';
2
+ import { ExitCode } from './constant.js';
3
+ export class CreateAppError extends Error {
4
+ constructor(message, exitCode = ExitCode.GENERAL_ERROR) {
5
+ super(message);
6
+ this.name = 'CreateAppError';
7
+ this.exitCode = exitCode;
8
+ }
9
+ }
10
+ export function isValidPackageName(name) {
11
+ return /^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/.test(name);
12
+ }
13
+ export function toValidPackageName(name) {
14
+ return name
15
+ .trim()
16
+ .toLowerCase()
17
+ .replace(/\s+/g, '-')
18
+ .replace(/^[._]/, '')
19
+ .replace(/[^a-z0-9-~]+/g, '-')
20
+ .replace(/^-+|-+$/g, '');
21
+ }
22
+ export function resolvePackageName(name) {
23
+ const trimmed = name.trim();
24
+ if (isValidPackageName(trimmed)) {
25
+ return trimmed;
26
+ }
27
+ const derived = toValidPackageName(trimmed);
28
+ if (!derived || !isValidPackageName(derived)) {
29
+ throw new CreateAppError(`无法从目标名推导合法包名: ${name}`);
30
+ }
31
+ return derived;
32
+ }
33
+ export function assertTargetInsideCwd(name, cwd = process.cwd()) {
34
+ const trimmed = name.trim();
35
+ if (!trimmed || trimmed === '.' || trimmed === './') {
36
+ throw new CreateAppError('目标目录不能是当前目录');
37
+ }
38
+ if (trimmed.includes('\0')) {
39
+ throw new CreateAppError('目标路径包含非法字符');
40
+ }
41
+ const resolved = resolve(cwd, trimmed);
42
+ const rel = relative(cwd, resolved);
43
+ if (rel === '' || rel.startsWith('..') || isAbsolute(rel)) {
44
+ throw new CreateAppError(`目标目录必须位于当前工作目录内: ${name}`);
45
+ }
46
+ }
47
+ //# sourceMappingURL=create-app-target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-app-target.js","sourceRoot":"","sources":["../../src/common/create-app-target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,cAAe,SAAQ,KAAK;IAGvC,YAAY,OAAe,EAAE,WAAqB,QAAQ,CAAC,aAAa;QACtE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,4DAA4D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,IAAI;SACR,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,cAAc,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACpC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,cAAc,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
@@ -1,9 +1,10 @@
1
- import { cpSync, readFileSync, writeFileSync } from 'node:fs';
2
- import { resolve } from 'node:path';
1
+ import { cpSync, existsSync, readdirSync, readFileSync, rmSync, rmdirSync, writeFileSync } from 'node:fs';
2
+ import { dirname, isAbsolute, relative, resolve } from 'node:path';
3
3
  import { getVersion } from './get-version.js';
4
4
  import { logInfo } from './output.js';
5
5
  import { toProjectPackageName } from './project-package-name.js';
6
6
  import { getTemplateDir, resolveTemplate } from './template-manifest.js';
7
+ import { assertTargetInsideCwd, resolvePackageName } from './create-app-target.js';
7
8
  export function toLibName(name) {
8
9
  const unscoped = name.replace(/^@[^/]+\//, '');
9
10
  return unscoped
@@ -26,30 +27,60 @@ function replaceContent(filePath, args) {
26
27
  });
27
28
  writeFileSync(filePath, content);
28
29
  }
30
+ function rollbackCreatedTarget(targetPath, cwd) {
31
+ if (existsSync(targetPath)) {
32
+ rmSync(targetPath, { recursive: true, force: true });
33
+ }
34
+ let parent = dirname(targetPath);
35
+ while (parent !== cwd) {
36
+ const rel = relative(cwd, parent);
37
+ if (rel === '' || rel.startsWith('..') || isAbsolute(rel)) {
38
+ break;
39
+ }
40
+ if (!existsSync(parent) || readdirSync(parent).length > 0) {
41
+ break;
42
+ }
43
+ rmdirSync(parent);
44
+ parent = dirname(parent);
45
+ }
46
+ }
29
47
  export const generateApp = (options) => {
30
48
  const { name, type, formats, format = '', platform } = options;
49
+ const packageName = options.packageName ?? resolvePackageName(name);
31
50
  const manifest = resolveTemplate({
32
51
  type: type,
33
52
  platform: platform
34
53
  });
35
54
  const templatePath = getTemplateDir(manifest.id);
36
55
  const cwd = process.cwd();
56
+ assertTargetInsideCwd(name, cwd);
37
57
  const targetPath = resolve(cwd, name);
38
- cpSync(templatePath, targetPath, { recursive: true });
39
- const cliVersion = getVersion();
40
- const args = {
41
- name,
42
- formats: formatsLiteral(formats),
43
- format,
44
- platform: platform ?? '',
45
- cliVersion,
46
- libName: toLibName(name),
47
- projectPackageName: toProjectPackageName(name)
48
- };
49
- manifest.replaceFiles.forEach((replaceFile) => {
50
- replaceContent(resolve(cwd, name, replaceFile), args);
51
- });
52
- logInfo(`cd ${name}`);
53
- logInfo(`npm install or yarn`);
58
+ const created = !existsSync(targetPath);
59
+ try {
60
+ cpSync(templatePath, targetPath, { recursive: true });
61
+ const cliVersion = getVersion();
62
+ const args = {
63
+ name: packageName,
64
+ formats: formatsLiteral(formats),
65
+ format,
66
+ platform: platform ?? '',
67
+ cliVersion,
68
+ libName: toLibName(packageName),
69
+ projectPackageName: toProjectPackageName(packageName)
70
+ };
71
+ manifest.replaceFiles.forEach((replaceFile) => {
72
+ replaceContent(resolve(targetPath, replaceFile), args);
73
+ });
74
+ if (options.hints !== false) {
75
+ logInfo(`cd ${name}`);
76
+ logInfo(`npm install or yarn`);
77
+ }
78
+ }
79
+ catch (error) {
80
+ if (created) {
81
+ rollbackCreatedTarget(targetPath, cwd);
82
+ }
83
+ throw error;
84
+ }
54
85
  };
55
86
  //# sourceMappingURL=generate-app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-app.js","sourceRoot":"","sources":["../../src/common/generate-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-app.js","sourceRoot":"","sources":["../../src/common/generate-app.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
1
1
  export function buildLibPackageExports(componentNames, seen) {
2
- const requirePath = seen.has('umd') ? './index.umd.js' : './index.esm.js';
2
+ const root = { types: './types/index.d.ts' };
3
+ if (seen.has('es')) {
4
+ root.import = './index.esm.js';
5
+ }
6
+ // 只有真正产出 CommonJS 时才承诺 require。UMD 产物是 .js,在 type: module
7
+ // 的包里会被当作 ESM 解析,require() 只会静默拿到空对象。
8
+ if (seen.has('cjs')) {
9
+ root.require = './index.cjs';
10
+ }
3
11
  const exports = {
4
- '.': {
5
- types: './types/index.d.ts',
6
- import: './index.esm.js',
7
- require: requirePath
8
- },
12
+ '.': root,
9
13
  './style.css': './index.css',
10
14
  './index.css': './index.css'
11
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"lib-package-exports.js","sourceRoot":"","sources":["../../src/common/lib-package-exports.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CACpC,cAAwB,EACxB,IAAiB;IAKjB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC1E,MAAM,OAAO,GAAiF;QAC5F,GAAG,EAAE;YACH,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,WAAW;SACrB;QACD,aAAa,EAAE,aAAa;QAC5B,aAAa,EAAE,aAAa;KAC7B,CAAC;IACF,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG;YACrB,KAAK,EAAE,WAAW,IAAI,aAAa;YACnC,MAAM,EAAE,gBAAgB,IAAI,eAAe;SAC5C,CAAC;QACF,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,GAAG,gBAAgB,IAAI,YAAY,CAAC;IACpE,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"lib-package-exports.js","sourceRoot":"","sources":["../../src/common/lib-package-exports.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,sBAAsB,CACpC,cAAwB,EACxB,IAAiB;IAKjB,MAAM,IAAI,GAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC7D,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC;IACjC,CAAC;IACD,0DAA0D;IAC1D,sCAAsC;IACtC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAA4C;QACvD,GAAG,EAAE,IAAI;QACT,aAAa,EAAE,aAAa;QAC5B,aAAa,EAAE,aAAa;KAC7B,CAAC;IACF,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG;YACrB,KAAK,EAAE,WAAW,IAAI,aAAa;YACnC,MAAM,EAAE,gBAAgB,IAAI,eAAe;SAC5C,CAAC;QACF,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,GAAG,gBAAgB,IAAI,YAAY,CAAC;IACpE,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC"}
package/lib/index.js CHANGED
@@ -51,12 +51,32 @@ program
51
51
  const { buildCss } = await import('./commands/build-css.js');
52
52
  await buildCss(options);
53
53
  });
54
+ program
55
+ .command('create [name]')
56
+ .description('新建 pnpm workspace,可选创建一个工程')
57
+ .option('-y, --yes', '使用默认值,跳过问答')
58
+ .option('--json', '以 JSON 格式输出结果')
59
+ .option('--app <appName>', '非交互时指定工程目录名')
60
+ .option('--no-app', '不创建工程')
61
+ .option('--install', '生成后执行 pnpm install')
62
+ .action(async (name, options) => {
63
+ const { create } = await import('./commands/create.js');
64
+ const noApp = options.noApp === true || options.app === false;
65
+ const app = typeof options.app === 'string' ? options.app : undefined;
66
+ await create(name, {
67
+ yes: options.yes,
68
+ json: options.json,
69
+ install: options.install,
70
+ app,
71
+ noApp
72
+ });
73
+ });
54
74
  program
55
75
  .command('create-app [name]')
56
76
  .description('新建 App / Lib 模板')
57
77
  .option('--type <type>', '工程类型 (app | lib)')
58
78
  .option('--platform <platform>', '应用平台 (web | mobile)')
59
- .option('--formats <formats>', 'lib 产物格式,逗号分隔 (es,umd,systemjs)')
79
+ .option('--formats <formats>', 'lib 产物格式,逗号分隔 (es,cjs,umd,systemjs)')
60
80
  .option('--format <format>', 'app 产物格式 (es | umd | systemjs)')
61
81
  .option('-y, --yes', '使用默认值,跳过问答')
62
82
  .option('--json', '以 JSON 格式输出结果')
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -21,12 +21,12 @@ export const createPackageJson = () => {
21
21
  };
22
22
  if (seen.has('es')) {
23
23
  result.module = './index.esm.js';
24
- if (!seen.has('umd')) {
25
- result.main = './index.esm.js';
26
- }
24
+ result.main = './index.esm.js';
27
25
  }
28
- if (seen.has('umd')) {
29
- result.main = './index.umd.js';
26
+ // main 是 require() 的入口。UMD 产物不能担任这个角色:它是 .js,在
27
+ // type: module 的包里按 ESM 解析后不会导出任何东西。
28
+ if (seen.has('cjs')) {
29
+ result.main = './index.cjs';
30
30
  }
31
31
  const exclude = ['scripts', 'devDependencies', 'private'];
32
32
  Object.keys(pkg).forEach((key) => {
@@ -1 +1 @@
1
- {"version":3,"file":"create-package-json.js","sourceRoot":"","sources":["../../src/plugins/create-package-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAQ,EAAE;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,cAAc,CAAC,aAAkC;YAC/C,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAwB;gBAClC,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,oBAAoB;gBAC3B,KAAK,EAAE,aAAa;aACrB,CAAC;YACF,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC;gBACjC,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC;YACjC,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO;gBACT,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7E,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YACvC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC;gBACZ,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"create-package-json.js","sourceRoot":"","sources":["../../src/plugins/create-package-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAQ,EAAE;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,cAAc,CAAC,aAAkC;YAC/C,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAwB;gBAClC,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,oBAAoB;gBAC3B,KAAK,EAAE,aAAa;aACrB,CAAC;YACF,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC;gBACjC,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC;YACjC,CAAC;YACD,+CAA+C;YAC/C,qCAAqC;YACrC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC;YAC9B,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO;gBACT,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7E,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YACvC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC;gBACZ,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,15 @@
1
1
  {
2
2
  "name": "@farris/cli",
3
3
  "private": false,
4
- "version": "2.2.0",
4
+ "version": "2.2.5",
5
5
  "type": "module",
6
6
  "typings": "lib/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./lib/commands/create.js",
10
+ "import": "./lib/commands/create.js"
11
+ }
12
+ },
7
13
  "bin": {
8
14
  "farris-cli": "./bin/index.js"
9
15
  },
@@ -22,8 +28,7 @@
22
28
  ],
23
29
  "license": "MIT",
24
30
  "dependencies": {
25
- "@types/inquirer": "^9.0.7",
26
- "@vitejs/plugin-vue": "^4.0.0",
31
+ "@vitejs/plugin-vue": "^5.2.4",
27
32
  "@vitejs/plugin-vue-jsx": "^3.0.0",
28
33
  "commander": "^9.4.0",
29
34
  "esbuild": "^0.23.0",
@@ -0,0 +1,58 @@
1
+ image: node:18
2
+
3
+ stages:
4
+ - pre
5
+ - build
6
+ - publish
7
+
8
+ variables:
9
+ PNPM_CACHE_DIR: "$CI_PROJECT_DIR/.pnpm-store"
10
+
11
+ cache:
12
+ key:
13
+ files:
14
+ - pnpm-lock.yaml
15
+ paths:
16
+ - .pnpm-store/
17
+ - node_modules/
18
+ policy: pull-push
19
+
20
+ pre-job:
21
+ stage: pre
22
+ tags:
23
+ - environment:cloud
24
+ cache:
25
+ policy: pull
26
+ script:
27
+ - export commit_author=$(git log -1 --pretty=format:%an)
28
+ - export commit_email=$(git log -1 --pretty=format:%ce)
29
+
30
+ build-job:
31
+ stage: build
32
+ tags:
33
+ - environment:cloud
34
+ rules:
35
+ - if: $CI_COMMIT_BRANCH
36
+ - if: $CI_COMMIT_TAG =~ /^v\d/
37
+ - if: $CI_PIPELINE_SOURCE == "merge_request_event"
38
+ script:
39
+ - npm i -g pnpm@9
40
+ - pnpm install --no-frozen-lockfile --store $PNPM_CACHE_DIR
41
+ <%= ciBuildSteps %>
42
+ artifacts:
43
+ expire_in: '5days'
44
+ name: 'dist'
45
+ paths:
46
+ - $CI_PROJECT_DIR/dist
47
+
48
+ publish:
49
+ stage: publish
50
+ tags:
51
+ - environment:cloud
52
+ rules:
53
+ - if: $CI_COMMIT_TAG =~ /^v\d/
54
+ cache: {}
55
+ script:
56
+ - npm config set registry https://repos.iec.io/repository/npm-igix-release/
57
+ - npm config set //repos.iec.io/repository/npm-igix-release/:_auth=$(echo -n $ARTIFACTS_REPO_USERNAME:$ARTIFACTS_REPO_PASSWORD | base64)
58
+ <%= ciPublishSteps %>
@@ -0,0 +1,9 @@
1
+ # <%= title %>
2
+
3
+ <%= readmeBody %>
4
+
5
+ ```bash
6
+ pnpm install
7
+ pnpm dev
8
+ pnpm build
9
+ ```
@@ -0,0 +1,13 @@
1
+ {
2
+ "private": true,
3
+ "packageManager": "pnpm@<%= pnpmVersion %>",
4
+ "engines": {
5
+ "node": "^18.0.0 || >=20.0.0",
6
+ "pnpm": ">=9.0.0 <10.0.0"
7
+ },
8
+ "scripts": {
9
+ "dev": "<%= rootDevScript %>",
10
+ "build": "<%= rootBuildScript %>",
11
+ "test": "<%= rootTestScript %>"
12
+ }
13
+ }
@@ -0,0 +1,12 @@
1
+ packages:
2
+ - "packages/*"
3
+
4
+ catalog:
5
+ "@farris/ui-vue": "<%= farrisUiVueVersion %>"
6
+ "@farris/cli": "<%= farrisCliVersion %>"
7
+ "typescript": "<%= typescriptVersion %>"
8
+ "vite": "<%= viteVersion %>"
9
+ "vue": "<%= vueVersion %>"
10
+ "vue-router": "<%= vueRouterVersion %>"
11
+ "vue-tsc": "<%= vueTscVersion %>"
12
+ "sass": "<%= sassVersion %>"
@@ -1,23 +1,12 @@
1
1
  image: registry.inspures.com/public/docker.io/library/node:22
2
2
 
3
3
  variables:
4
- PROJECT_ROOT: "."
5
4
  NPM_REGISTRY: "https://repos.iec.io/repository/npm-igix/"
6
5
  NPM_RELEASE_REGISTRY: "https://repos.iec.io/repository/npm-igix-release/"
7
6
 
8
7
  stages:
9
- - pre
10
8
  - build
11
9
  - publish
12
- - publishproject
13
-
14
- pre-job:
15
- stage: pre
16
- tags:
17
- - environment:cloud
18
- script:
19
- - export commit_author=$(git log -1 --pretty=format:%an)
20
- - export commit_email=$(git log -1 --pretty=format:%ce)
21
10
 
22
11
  build-job:
23
12
  stage: build
@@ -71,15 +60,3 @@ publish-one:
71
60
  script:
72
61
  - npm config set //repos.iec.io/repository/npm-igix-release/:_auth=$(echo -n ${ARTIFACTS_REPO_USERNAME}:${ARTIFACTS_REPO_PASSWORD} | base64)
73
62
  - cd lib && npm publish
74
-
75
- publish-project:
76
- stage: publishproject
77
- tags:
78
- - environment:cloud
79
- only:
80
- refs:
81
- - cicd
82
- changes:
83
- - project.json
84
- script:
85
- - echo "skip publishproject, lib has no project.json"
@@ -1,3 +1,3 @@
1
1
  # <%= name %>
2
2
 
3
- `src/` 是本地演示应用,执行 `npm run dev` 启动。发布到 npm 的组件源码在 `components/`,执行 `npm run build` 打包。
3
+ `src/` 是本地演示应用,执行 `npm run dev` 启动。演示入口会自动加载 `components/**/*.scss`,新增组件样式无需再改 `src/main.ts`。发布到 npm 的组件源码在 `components/`,执行 `npm run build` 打包。
@@ -1,8 +1,10 @@
1
+ import { mount } from '@vue/test-utils';
1
2
  import { describe, expect, it } from 'vitest';
2
3
  import { Button } from './index';
3
4
 
4
5
  describe('Button', () => {
5
- it('exports a component', () => {
6
- expect(Button).toBeTruthy();
6
+ it('renders a button', () => {
7
+ const wrapper = mount(Button, { slots: { default: 'OK' } });
8
+ expect(wrapper.text()).toContain('OK');
7
9
  });
8
10
  });
@@ -4,7 +4,12 @@ export default {
4
4
  entry: './components/index.ts',
5
5
  name: '<%= libName %>',
6
6
  formats: <%= formats %>,
7
- fileName: (format) => (format === 'es' ? 'index.esm.js' : `index.${format}.js`)
7
+ fileName: (format) => {
8
+ if (format === 'es') return 'index.esm.js';
9
+ // 必须是 .cjs:本包是 type: module,.js 一律按 ESM 解析。
10
+ if (format === 'cjs') return 'index.cjs';
11
+ return `index.${format}.js`;
12
+ }
8
13
  },
9
14
  outDir: './lib',
10
15
  componentOutDir: './lib/components',
@@ -18,9 +18,11 @@
18
18
  "@changesets/cli": "^2.29.5",
19
19
  "@farris/cli": "<%= cliVersion %>",
20
20
  "@vue/tsconfig": "^0.5.1",
21
- "@vitejs/plugin-vue": "^4.0.0",
21
+ "@vue/test-utils": "^2.4.6",
22
+ "@vitejs/plugin-vue": "^5.2.4",
23
+ "jsdom": "^25.0.1",
22
24
  "typescript": "~5.4.0",
23
25
  "vue": "^3.4.29",
24
- "vitest": "^1.6.1"
26
+ "vitest": "^3.2.4"
25
27
  }
26
28
  }
@@ -1,4 +1,6 @@
1
1
  import { createApp } from 'vue';
2
2
  import App from './App.vue';
3
3
 
4
+ import.meta.glob('../components/**/*.scss', { eager: true });
5
+
4
6
  createApp(App).mount('#app');
@@ -4,6 +4,7 @@ import { defineConfig } from 'vitest/config';
4
4
  export default defineConfig({
5
5
  plugins: [vue()],
6
6
  test: {
7
+ environment: 'jsdom',
7
8
  include: ['components/**/*.spec.ts']
8
9
  }
9
10
  });
@@ -1,24 +1,13 @@
1
1
  image: registry.inspures.com/public/docker.io/library/node:22
2
2
 
3
3
  variables:
4
- PROJECT_ROOT: "."
5
4
  NPM_REGISTRY: "https://repos.iec.io/repository/npm-igix/"
6
5
  NPM_RELEASE_REGISTRY: "https://repos.iec.io/repository/npm-igix-release/"
7
6
 
8
7
  stages:
9
- - pre
10
8
  - build
11
- - publish
12
9
  - publishproject
13
10
 
14
- pre-job:
15
- stage: pre
16
- tags:
17
- - environment:cloud
18
- script:
19
- - export commit_author=$(git log -1 --pretty=format:%an)
20
- - export commit_email=$(git log -1 --pretty=format:%ce)
21
-
22
11
  build-job:
23
12
  stage: build
24
13
  tags:
@@ -46,18 +35,6 @@ build-job:
46
35
  paths:
47
36
  - $CI_PROJECT_DIR/dist
48
37
 
49
- publish-one:
50
- stage: publish
51
- tags:
52
- - environment:cloud
53
- only:
54
- refs:
55
- - cicd
56
- changes:
57
- - packages/**/package.json
58
- script:
59
- - echo "skip publish-one, app package is private"
60
-
61
38
  publish-project:
62
39
  stage: publishproject
63
40
  tags:
@@ -26,11 +26,11 @@
26
26
  "@vue/eslint-config-prettier": "^9.0.0",
27
27
  "@vue/eslint-config-typescript": "^13.0.0",
28
28
  "@vue/tsconfig": "^0.5.1",
29
- "@vitejs/plugin-vue": "^4.0.0",
29
+ "@vitejs/plugin-vue": "^5.2.4",
30
30
  "eslint": "^8.57.0",
31
31
  "eslint-plugin-vue": "^9.23.0",
32
32
  "prettier": "^3.2.5",
33
33
  "typescript": "~5.4.0",
34
- "vitest": "^1.6.1"
34
+ "vitest": "^3.2.4"
35
35
  }
36
36
  }
@@ -1,24 +1,13 @@
1
1
  image: registry.inspures.com/public/docker.io/library/node:22
2
2
 
3
3
  variables:
4
- PROJECT_ROOT: "."
5
4
  NPM_REGISTRY: "https://repos.iec.io/repository/npm-igix/"
6
5
  NPM_RELEASE_REGISTRY: "https://repos.iec.io/repository/npm-igix-release/"
7
6
 
8
7
  stages:
9
- - pre
10
8
  - build
11
- - publish
12
9
  - publishproject
13
10
 
14
- pre-job:
15
- stage: pre
16
- tags:
17
- - environment:cloud
18
- script:
19
- - export commit_author=$(git log -1 --pretty=format:%an)
20
- - export commit_email=$(git log -1 --pretty=format:%ce)
21
-
22
11
  build-job:
23
12
  stage: build
24
13
  tags:
@@ -46,18 +35,6 @@ build-job:
46
35
  paths:
47
36
  - $CI_PROJECT_DIR/dist
48
37
 
49
- publish-one:
50
- stage: publish
51
- tags:
52
- - environment:cloud
53
- only:
54
- refs:
55
- - cicd
56
- changes:
57
- - packages/**/package.json
58
- script:
59
- - echo "skip publish-one, app package is private"
60
-
61
38
  publish-project:
62
39
  stage: publishproject
63
40
  tags:
@@ -26,11 +26,11 @@
26
26
  "@vue/eslint-config-prettier": "^9.0.0",
27
27
  "@vue/eslint-config-typescript": "^13.0.0",
28
28
  "@vue/tsconfig": "^0.5.1",
29
- "@vitejs/plugin-vue": "^4.0.0",
29
+ "@vitejs/plugin-vue": "^5.2.4",
30
30
  "eslint": "^8.57.0",
31
31
  "eslint-plugin-vue": "^9.23.0",
32
32
  "prettier": "^3.2.5",
33
33
  "typescript": "~5.4.0",
34
- "vitest": "^1.6.1"
34
+ "vitest": "^3.2.4"
35
35
  }
36
36
  }