@farris/cli 2.2.0-beta.1 → 2.2.0-beta.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 (112) hide show
  1. package/bin/index.js +1 -1
  2. package/lib/commands/build-components.js +48 -48
  3. package/lib/commands/build-components.js.map +1 -1
  4. package/lib/commands/build-css.js +38 -38
  5. package/lib/commands/build-css.js.map +1 -1
  6. package/lib/commands/build-lib.js +25 -25
  7. package/lib/commands/build.js +14 -15
  8. package/lib/commands/build.js.map +1 -1
  9. package/lib/commands/create-app-options.js +73 -0
  10. package/lib/commands/create-app-options.js.map +1 -0
  11. package/lib/commands/create-app.js +85 -54
  12. package/lib/commands/create-app.js.map +1 -1
  13. package/lib/commands/dev-serve.js +18 -18
  14. package/lib/commands/extract-i18n.js +74 -74
  15. package/lib/commands/extract-i18n.js.map +1 -1
  16. package/lib/commands/generate/api.js +188 -0
  17. package/lib/commands/generate/api.js.map +1 -0
  18. package/lib/commands/generate/common.js +101 -0
  19. package/lib/commands/generate/common.js.map +1 -0
  20. package/lib/commands/generate/component.js +164 -0
  21. package/lib/commands/generate/component.js.map +1 -0
  22. package/lib/commands/generate/view.js +198 -0
  23. package/lib/commands/generate/view.js.map +1 -0
  24. package/lib/commands/preview-serve.js +16 -16
  25. package/lib/commands/workspace/add-app.js +181 -0
  26. package/lib/commands/workspace/add-app.js.map +1 -0
  27. package/lib/commands/workspace/create.js +380 -0
  28. package/lib/commands/workspace/create.js.map +1 -0
  29. package/lib/commands/workspace/inspect.js +31 -0
  30. package/lib/commands/workspace/inspect.js.map +1 -0
  31. package/lib/commands/workspace/verify.js +39 -0
  32. package/lib/commands/workspace/verify.js.map +1 -0
  33. package/lib/common/component-file-name.js +3 -3
  34. package/lib/common/constant.js +64 -22
  35. package/lib/common/constant.js.map +1 -1
  36. package/lib/common/generate-app.js +53 -51
  37. package/lib/common/generate-app.js.map +1 -1
  38. package/lib/common/get-dependencies.js +9 -9
  39. package/lib/common/get-farris-config.js +25 -25
  40. package/lib/common/get-farris-config.js.map +1 -1
  41. package/lib/common/get-version.js +6 -6
  42. package/lib/common/get-vite-config.js +106 -49
  43. package/lib/common/get-vite-config.js.map +1 -1
  44. package/lib/common/lib-package-exports.js +20 -20
  45. package/lib/common/list-lib-components.js +23 -23
  46. package/lib/common/list-lib-components.js.map +1 -1
  47. package/lib/common/output.js +95 -0
  48. package/lib/common/output.js.map +1 -0
  49. package/lib/common/project-package-name.js +5 -0
  50. package/lib/common/project-package-name.js.map +1 -0
  51. package/lib/common/safety.js +172 -0
  52. package/lib/common/safety.js.map +1 -0
  53. package/lib/common/template-manifest.js +16 -16
  54. package/lib/common/template-manifest.js.map +1 -1
  55. package/lib/common/template-renderer.js +115 -0
  56. package/lib/common/template-renderer.js.map +1 -0
  57. package/lib/common/transaction.js +84 -0
  58. package/lib/common/transaction.js.map +1 -0
  59. package/lib/common/verifier.js +151 -0
  60. package/lib/common/verifier.js.map +1 -0
  61. package/lib/config/vite-app.js +13 -13
  62. package/lib/config/vite-common.js +20 -20
  63. package/lib/config/vite-common.js.map +1 -1
  64. package/lib/config/vite-component.js +32 -32
  65. package/lib/config/vite-component.js.map +1 -1
  66. package/lib/config/vite-lib.js +26 -26
  67. package/lib/index.js +184 -87
  68. package/lib/index.js.map +1 -1
  69. package/lib/plugins/create-component-style.js +44 -44
  70. package/lib/plugins/create-package-json.js +48 -48
  71. package/lib/plugins/create-package-json.js.map +1 -1
  72. package/lib/plugins/dts.js +8 -8
  73. package/lib/plugins/html-system.js +9 -9
  74. package/lib/plugins/replace.js +17 -17
  75. package/lib/plugins/systemjs-bundle.js +15 -15
  76. package/lib/plugins/systemjs-bundle.js.map +1 -1
  77. package/package.json +12 -9
  78. package/templates/lib/.gitlab-ci.yml +62 -0
  79. package/templates/lib/README.md +1 -15
  80. package/templates/lib/components/button/button.spec.ts +8 -0
  81. package/templates/lib/index.html +12 -0
  82. package/templates/lib/package.json +6 -1
  83. package/templates/lib/src/App.vue +7 -0
  84. package/templates/lib/src/main.ts +4 -0
  85. package/templates/lib/vitest.config.ts +9 -0
  86. package/templates/mobile/.gitlab-ci.yml +63 -0
  87. package/templates/mobile/package.json +5 -1
  88. package/templates/mobile/project.json +4 -0
  89. package/templates/mobile/src/components/TheButton.spec.ts +8 -0
  90. package/templates/mobile/vitest.config.ts +9 -0
  91. package/templates/web/.gitlab-ci.yml +63 -0
  92. package/templates/web/package.json +5 -1
  93. package/templates/web/project.json +4 -0
  94. package/templates/web/src/components/TheButton.spec.ts +8 -0
  95. package/templates/web/vitest.config.ts +9 -0
  96. package/templates/workspace/app/farris.config.mjs +13 -0
  97. package/templates/workspace/app/index.html +12 -0
  98. package/templates/workspace/app/package.json +22 -0
  99. package/templates/workspace/app/src/App.tsx +11 -0
  100. package/templates/workspace/app/src/locales/index.ts +5 -0
  101. package/templates/workspace/app/src/locales/zh-CN.json +1 -0
  102. package/templates/workspace/app/src/main.ts +12 -0
  103. package/templates/workspace/app/src/router/index.ts +16 -0
  104. package/templates/workspace/app/src/styles/index.css +0 -0
  105. package/templates/workspace/app/src/styles/index.scss +0 -0
  106. package/templates/workspace/app/src/views/home/composables/use-home.ts +7 -0
  107. package/templates/workspace/app/src/views/home/home.component.tsx +15 -0
  108. package/templates/workspace/app/src/views/home/index.ts +4 -0
  109. package/templates/workspace/app/tsconfig.json +21 -0
  110. package/templates/workspace/root/README.md +28 -0
  111. package/templates/workspace/root/package.json +13 -0
  112. package/templates/workspace/root/pnpm-workspace.yaml +12 -0
@@ -1,52 +1,54 @@
1
- import { cpSync, readFileSync, writeFileSync } from 'node:fs';
2
- import { resolve } from 'node:path';
3
- import { CWD } from './constant.js';
4
- import { getVersion } from './get-version.js';
5
- import { getTemplateDir, resolveTemplate } from './template-manifest.js';
6
- export function toLibName(name) {
7
- const unscoped = name.replace(/^@[^/]+\//, '');
8
- return unscoped
9
- .split(/[^A-Za-z0-9]+/)
10
- .filter(Boolean)
11
- .map((token) => token.charAt(0).toUpperCase() + token.slice(1))
12
- .join('');
13
- }
14
- export function formatsLiteral(formats) {
15
- if (!formats || formats.length === 0) {
16
- console.log('未选择格式,默认 es');
17
- return JSON.stringify(['es']);
18
- }
19
- return JSON.stringify(formats);
20
- }
21
- function replaceContent(filePath, args) {
22
- let content = readFileSync(filePath, 'utf-8');
23
- Object.keys(args).forEach((key) => {
24
- content = content.replace(new RegExp(`<%= ${key} %>`, 'g'), args[key]);
25
- });
26
- writeFileSync(filePath, content);
27
- }
28
- export const generateApp = (options) => {
29
- const { name, type, formats, format = '', platform } = options;
30
- const manifest = resolveTemplate({
31
- type: type,
32
- platform: platform
33
- });
34
- const templatePath = getTemplateDir(manifest.id);
35
- const targetPath = resolve(CWD, name);
36
- cpSync(templatePath, targetPath, { recursive: true });
37
- const cliVersion = getVersion();
38
- const args = {
39
- name,
40
- formats: formatsLiteral(formats),
41
- format,
42
- platform: platform ?? '',
43
- cliVersion,
44
- libName: toLibName(name)
45
- };
46
- manifest.replaceFiles.forEach((replaceFile) => {
47
- replaceContent(resolve(CWD, name, replaceFile), args);
48
- });
49
- console.log(`cd ${name}`);
50
- console.log(`npm install or yarn`);
51
- };
1
+ import { cpSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import { getVersion } from './get-version.js';
4
+ import { toProjectPackageName } from './project-package-name.js';
5
+ import { getTemplateDir, resolveTemplate } from './template-manifest.js';
6
+ export function toLibName(name) {
7
+ const unscoped = name.replace(/^@[^/]+\//, '');
8
+ return unscoped
9
+ .split(/[^A-Za-z0-9]+/)
10
+ .filter(Boolean)
11
+ .map((token) => token.charAt(0).toUpperCase() + token.slice(1))
12
+ .join('');
13
+ }
14
+ export function formatsLiteral(formats) {
15
+ if (!formats || formats.length === 0) {
16
+ console.log('未选择格式,默认 es');
17
+ return JSON.stringify(['es']);
18
+ }
19
+ return JSON.stringify(formats);
20
+ }
21
+ function replaceContent(filePath, args) {
22
+ let content = readFileSync(filePath, 'utf-8');
23
+ Object.keys(args).forEach((key) => {
24
+ content = content.replace(new RegExp(`<%= ${key} %>`, 'g'), args[key]);
25
+ });
26
+ writeFileSync(filePath, content);
27
+ }
28
+ export const generateApp = (options) => {
29
+ const { name, type, formats, format = '', platform } = options;
30
+ const manifest = resolveTemplate({
31
+ type: type,
32
+ platform: platform
33
+ });
34
+ const templatePath = getTemplateDir(manifest.id);
35
+ const cwd = process.cwd();
36
+ const targetPath = resolve(cwd, name);
37
+ cpSync(templatePath, targetPath, { recursive: true });
38
+ const cliVersion = getVersion();
39
+ const args = {
40
+ name,
41
+ formats: formatsLiteral(formats),
42
+ format,
43
+ platform: platform ?? '',
44
+ cliVersion,
45
+ libName: toLibName(name),
46
+ projectPackageName: toProjectPackageName(name)
47
+ };
48
+ manifest.replaceFiles.forEach((replaceFile) => {
49
+ replaceContent(resolve(cwd, name, replaceFile), args);
50
+ });
51
+ console.log(`cd ${name}`);
52
+ console.log(`npm install or yarn`);
53
+ };
52
54
  //# 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,10 +1,10 @@
1
- import { readFileSync } from "node:fs";
2
- import { resolve } from 'node:path';
3
- import { CWD } from "../common/constant.js";
4
- export const getDependencies = () => {
5
- const pkg = readFileSync(resolve(CWD, 'package.json'), 'utf-8');
6
- const packageJson = JSON.parse(pkg);
7
- const { dependencies, peerDependencies } = packageJson;
8
- return [...Object.keys(dependencies || {}), ...Object.keys(peerDependencies || {})];
9
- };
1
+ import { readFileSync } from "node:fs";
2
+ import { resolve } from 'node:path';
3
+ import { CWD } from "../common/constant.js";
4
+ export const getDependencies = () => {
5
+ const pkg = readFileSync(resolve(CWD, 'package.json'), 'utf-8');
6
+ const packageJson = JSON.parse(pkg);
7
+ const { dependencies, peerDependencies } = packageJson;
8
+ return [...Object.keys(dependencies || {}), ...Object.keys(peerDependencies || {})];
9
+ };
10
10
  //# sourceMappingURL=get-dependencies.js.map
@@ -1,26 +1,26 @@
1
- import { existsSync } from 'node:fs';
2
- import { resolve } from 'node:path';
3
- import { pathToFileURL } from 'node:url';
4
- export async function getFarrisConfigAsync(configFile) {
5
- const cwd = process.cwd();
6
- const explicit = configFile !== undefined && configFile !== '';
7
- const resolved = resolve(cwd, explicit ? configFile : 'farris.config.mjs');
8
- if (!existsSync(resolved)) {
9
- if (explicit) {
10
- throw new Error(`配置文件不存在: ${resolved}`);
11
- }
12
- return {};
13
- }
14
- try {
15
- const loaded = await import(pathToFileURL(resolved).href);
16
- if (loaded.default === undefined) {
17
- throw new Error('missing default export');
18
- }
19
- return loaded.default;
20
- }
21
- catch (err) {
22
- const cause = err instanceof Error ? err.message : String(err);
23
- throw new Error(`Failed to load farris config: ${resolved} — ${cause}`);
24
- }
25
- }
1
+ import { existsSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
4
+ export async function getFarrisConfigAsync(configFile) {
5
+ const cwd = process.cwd();
6
+ const explicit = configFile !== undefined && configFile !== '';
7
+ const resolved = resolve(cwd, explicit ? configFile : 'farris.config.mjs');
8
+ if (!existsSync(resolved)) {
9
+ if (explicit) {
10
+ throw new Error(`配置文件不存在: ${resolved}`);
11
+ }
12
+ return {};
13
+ }
14
+ try {
15
+ const loaded = await import(pathToFileURL(resolved).href);
16
+ if (loaded.default === undefined) {
17
+ throw new Error('missing default export');
18
+ }
19
+ return loaded.default;
20
+ }
21
+ catch (err) {
22
+ const cause = err instanceof Error ? err.message : String(err);
23
+ throw new Error(`Failed to load farris config: ${resolved} — ${cause}`);
24
+ }
25
+ }
26
26
  //# sourceMappingURL=get-farris-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-farris-config.js","sourceRoot":"","sources":["../../src/common/get-farris-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAAmB;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,CAAC;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAE3E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACzB,IAAI,QAAQ,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;SACzC;QACD,OAAO,EAAE,CAAC;KACX;IAED,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;QACD,OAAO,MAAM,CAAC,OAAO,CAAC;KACvB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,MAAM,KAAK,EAAE,CAAC,CAAC;KACzE;AACH,CAAC"}
1
+ {"version":3,"file":"get-farris-config.js","sourceRoot":"","sources":["../../src/common/get-farris-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAAmB;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,CAAC;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAE3E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,MAAM,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
- import { createRequire } from 'node:module';
2
- const require = createRequire(import.meta.url);
3
- const packageJson = require('../../package.json');
4
- export const getVersion = () => {
5
- return packageJson.version;
6
- };
1
+ import { createRequire } from 'node:module';
2
+ const require = createRequire(import.meta.url);
3
+ const packageJson = require('../../package.json');
4
+ export const getVersion = () => {
5
+ return packageJson.version;
6
+ };
7
7
  //# sourceMappingURL=get-version.js.map
@@ -1,50 +1,107 @@
1
- import { mergeConfig } from 'vite';
2
- import { getFarrisConfigAsync } from './get-farris-config.js';
3
- import { getDependencies } from '../common/get-dependencies.js';
4
- import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js';
5
- const formatFarrisConfig = (farrisConfig, type) => {
6
- const { lib, format, target, minify = true, outDir, externals = { include: [], exclude: [] }, externalDependencies, plugins = [], alias, server, cssInjected, packageName = '@farris/mobile-ui-vue' } = farrisConfig;
7
- const dependencies = externalDependencies ? getDependencies() : [];
8
- let external = externals.include ? [...externals.include, ...dependencies] : dependencies;
9
- external = external.filter((item) => !externals.exclude?.includes(item));
10
- const libFormats = lib && typeof lib === 'object' ? lib.formats : undefined;
11
- const hasLibFormats = Array.isArray(libFormats) && libFormats.length > 0;
12
- const resolvedFormat = hasLibFormats ? libFormats[0] : format;
13
- resolvedFormat && (process.env.FARRIS_FORMAT = resolvedFormat);
14
- if (cssInjected) {
15
- plugins.push(cssInjectedByJsPlugin());
16
- }
17
- if (packageName) {
18
- process.env.PackageName = packageName;
19
- }
20
- const viteConfig = {
21
- build: {
22
- target,
23
- minify,
24
- lib: type === 'lib' ? lib : undefined,
25
- rollupOptions: {
26
- output: hasLibFormats ? {} : { format: resolvedFormat },
27
- external: externals.filter ? externals.filter(external) : external
28
- },
29
- outDir
30
- },
31
- server,
32
- plugins,
33
- resolve: {
34
- alias
35
- }
36
- };
37
- return viteConfig;
38
- };
39
- const formatViteConfig = async (type, configFile) => {
40
- const { viteConfig = {}, ...farrisConfig } = await getFarrisConfigAsync(configFile);
41
- const customViteConfig = formatFarrisConfig(farrisConfig, type);
42
- return mergeConfig(customViteConfig, viteConfig);
43
- };
44
- const getViteConfig = async (type = 'app', configFile) => {
45
- const viteConfig = await formatViteConfig(type, configFile);
46
- const { default: defaultViteConfig } = await import(`../config/vite-${type}.js`);
47
- return mergeConfig(defaultViteConfig, viteConfig);
48
- };
49
- export { getViteConfig };
1
+ import { mergeConfig, loadEnv } from 'vite';
2
+ import { getFarrisConfigAsync } from './get-farris-config.js';
3
+ import { getDependencies } from '../common/get-dependencies.js';
4
+ import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js';
5
+ import { logWarn } from './output.js';
6
+ import { CWD } from './constant.js';
7
+ /**
8
+ * 解析有效 Base 及其来源
9
+ */
10
+ export function resolveEffectiveBase(options) {
11
+ const { cliBase, mode = 'production', configBase, configPublicPath, cwd = CWD } = options;
12
+ // 1. CLI --base
13
+ if (cliBase !== undefined && cliBase !== '') {
14
+ return { effectiveBase: cliBase, baseSource: 'cli' };
15
+ }
16
+ // 2. VITE_BASE_URL (通过 loadEnv 加载当前 mode 的 .env 或环境变量)
17
+ const env = loadEnv(mode, cwd, '');
18
+ const envBase = env.VITE_BASE_URL || process.env.VITE_BASE_URL;
19
+ if (envBase !== undefined && envBase !== '') {
20
+ return { effectiveBase: envBase, baseSource: 'env' };
21
+ }
22
+ // 3. farris.config.mjs.base
23
+ if (configBase !== undefined && configBase !== '') {
24
+ if (configPublicPath !== undefined) {
25
+ logWarn('[WARN] farris.config.mjs 中同时存在 base 和 publicPath,优先使用 base,publicPath 已弃用。');
26
+ }
27
+ return { effectiveBase: configBase, baseSource: 'config.base' };
28
+ }
29
+ // 4. farris.config.mjs.publicPath (兼容别名)
30
+ if (configPublicPath !== undefined && configPublicPath !== '') {
31
+ logWarn('[WARN] farris.config.mjs 中的 publicPath 已弃用,请在配置文件中改用 base。');
32
+ return { effectiveBase: configPublicPath, baseSource: 'config.publicPath' };
33
+ }
34
+ // 5. 默认根路径
35
+ return { effectiveBase: '/', baseSource: 'default' };
36
+ }
37
+ /**
38
+ * 校验 Base 与 RouterMode 兼容性
39
+ */
40
+ export function validateBaseAndRouterMode(base, routerMode) {
41
+ const isRelative = base.startsWith('.') || (!base.startsWith('/') && !base.startsWith('http://') && !base.startsWith('https://'));
42
+ if (isRelative && routerMode === 'history') {
43
+ throw new Error(`[Error] 配置冲突: 相对路径 base ("${base}") 无法与 history 路由模式 ("routerMode: 'history'") 同时使用。在 history 模式下必须使用绝对路径 base (如 "/"),或者切换为 hash 路由模式。`);
44
+ }
45
+ }
46
+ const formatFarrisConfig = (farrisConfig, type, cliOptions = {}) => {
47
+ const { lib, format, target, minify = true, outDir, externals = { include: [], exclude: [] }, externalDependencies, plugins = [], alias, server, cssInjected, packageName = '@farris/mobile-ui-vue', base: configBase, publicPath: configPublicPath, routerMode } = farrisConfig;
48
+ // 解析 base
49
+ const { effectiveBase } = resolveEffectiveBase({
50
+ cliBase: cliOptions.base,
51
+ mode: cliOptions.mode,
52
+ configBase,
53
+ configPublicPath
54
+ });
55
+ // 校验 base 与 routerMode
56
+ if (type === 'app') {
57
+ validateBaseAndRouterMode(effectiveBase, routerMode);
58
+ }
59
+ const dependencies = externalDependencies ? getDependencies() : [];
60
+ let external = externals.include ? [...externals.include, ...dependencies] : dependencies;
61
+ external = external.filter((item) => !externals.exclude?.includes(item));
62
+ const libFormats = lib && typeof lib === 'object' ? lib.formats : undefined;
63
+ const hasLibFormats = Array.isArray(libFormats) && libFormats.length > 0;
64
+ const resolvedFormat = hasLibFormats ? libFormats[0] : format;
65
+ if (resolvedFormat) {
66
+ process.env.FARRIS_FORMAT = resolvedFormat;
67
+ }
68
+ if (cssInjected) {
69
+ plugins.push(cssInjectedByJsPlugin());
70
+ }
71
+ if (packageName) {
72
+ process.env.PackageName = packageName;
73
+ }
74
+ // Rollup format 转换:systemjs -> system
75
+ const rollupFormat = resolvedFormat === 'systemjs' ? 'system' : resolvedFormat;
76
+ const viteConfig = {
77
+ base: effectiveBase,
78
+ build: {
79
+ target,
80
+ minify,
81
+ lib: type === 'lib' ? lib : undefined,
82
+ rollupOptions: {
83
+ output: hasLibFormats ? {} : { format: rollupFormat },
84
+ external: externals.filter ? externals.filter(external) : external
85
+ },
86
+ outDir
87
+ },
88
+ server,
89
+ plugins,
90
+ resolve: {
91
+ alias
92
+ }
93
+ };
94
+ return viteConfig;
95
+ };
96
+ const formatViteConfig = async (type, configFile, cliOptions = {}) => {
97
+ const { viteConfig = {}, ...farrisConfig } = await getFarrisConfigAsync(configFile);
98
+ const customViteConfig = formatFarrisConfig(farrisConfig, type, cliOptions);
99
+ return mergeConfig(customViteConfig, viteConfig);
100
+ };
101
+ const getViteConfig = async (type = 'app', configFile, cliOptions = {}) => {
102
+ const viteConfig = await formatViteConfig(type, configFile, cliOptions);
103
+ const { default: defaultViteConfig } = await import(`../config/vite-${type}.js`);
104
+ return mergeConfig(defaultViteConfig, viteConfig);
105
+ };
106
+ export { getViteConfig };
50
107
  //# sourceMappingURL=get-vite-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-vite-config.js","sourceRoot":"","sources":["../../src/common/get-vite-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-vite-config.js","sourceRoot":"","sources":["../../src/common/get-vite-config.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,21 @@
1
- export function buildLibPackageExports(componentNames, seen) {
2
- const requirePath = seen.has('umd') ? './index.umd.js' : './index.esm.js';
3
- const exports = {
4
- '.': {
5
- types: './types/index.d.ts',
6
- import: './index.esm.js',
7
- require: requirePath
8
- },
9
- './style.css': './index.css',
10
- './index.css': './index.css'
11
- };
12
- componentNames.forEach((name) => {
13
- exports[`./${name}`] = {
14
- types: `./types/${name}/index.d.ts`,
15
- import: `./components/${name}/index.esm.js`
16
- };
17
- exports[`./${name}/style.css`] = `./components/${name}/index.css`;
18
- });
19
- return { sideEffects: ['**/*.css'], exports };
20
- }
1
+ export function buildLibPackageExports(componentNames, seen) {
2
+ const requirePath = seen.has('umd') ? './index.umd.js' : './index.esm.js';
3
+ const exports = {
4
+ '.': {
5
+ types: './types/index.d.ts',
6
+ import: './index.esm.js',
7
+ require: requirePath
8
+ },
9
+ './style.css': './index.css',
10
+ './index.css': './index.css'
11
+ };
12
+ componentNames.forEach((name) => {
13
+ exports[`./${name}`] = {
14
+ types: `./types/${name}/index.d.ts`,
15
+ import: `./components/${name}/index.esm.js`
16
+ };
17
+ exports[`./${name}/style.css`] = `./components/${name}/index.css`;
18
+ });
19
+ return { sideEffects: ['**/*.css'], exports };
20
+ }
21
21
  //# sourceMappingURL=lib-package-exports.js.map
@@ -1,24 +1,24 @@
1
- import { existsSync, lstatSync, readdirSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- export const DEFAULT_EXCLUDE_COMPONENTS = [
4
- 'property-panel',
5
- 'dynamic-resolver',
6
- 'dynamic-view'
7
- ];
8
- export function listLibComponents(rootDir, exclude = DEFAULT_EXCLUDE_COMPONENTS) {
9
- const componentsDir = join(rootDir, 'components');
10
- if (!existsSync(componentsDir) || !lstatSync(componentsDir).isDirectory()) {
11
- return [];
12
- }
13
- const skip = new Set(exclude);
14
- return readdirSync(componentsDir)
15
- .filter((name) => {
16
- if (skip.has(name)) {
17
- return false;
18
- }
19
- const dir = join(componentsDir, name);
20
- return lstatSync(dir).isDirectory() && existsSync(join(dir, 'index.ts'));
21
- })
22
- .sort();
23
- }
1
+ import { existsSync, lstatSync, readdirSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ export const DEFAULT_EXCLUDE_COMPONENTS = [
4
+ 'property-panel',
5
+ 'dynamic-resolver',
6
+ 'dynamic-view'
7
+ ];
8
+ export function listLibComponents(rootDir, exclude = DEFAULT_EXCLUDE_COMPONENTS) {
9
+ const componentsDir = join(rootDir, 'components');
10
+ if (!existsSync(componentsDir) || !lstatSync(componentsDir).isDirectory()) {
11
+ return [];
12
+ }
13
+ const skip = new Set(exclude);
14
+ return readdirSync(componentsDir)
15
+ .filter((name) => {
16
+ if (skip.has(name)) {
17
+ return false;
18
+ }
19
+ const dir = join(componentsDir, name);
20
+ return lstatSync(dir).isDirectory() && existsSync(join(dir, 'index.ts'));
21
+ })
22
+ .sort();
23
+ }
24
24
  //# sourceMappingURL=list-lib-components.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-lib-components.js","sourceRoot":"","sources":["../../src/common/list-lib-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;CACf,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,UAAoB,0BAA0B;IAE9C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,EAAE;QACzE,OAAO,EAAE,CAAC;KACX;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,WAAW,CAAC,aAAa,CAAC;SAC9B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClB,OAAO,KAAK,CAAC;SACd;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACtC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;SACD,IAAI,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"list-lib-components.js","sourceRoot":"","sources":["../../src/common/list-lib-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;CACf,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,UAAoB,0BAA0B;IAE9C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1E,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,WAAW,CAAC,aAAa,CAAC;SAC9B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACtC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;SACD,IAAI,EAAE,CAAC;AACZ,CAAC"}
@@ -0,0 +1,95 @@
1
+ import ora from 'ora';
2
+ import { SCHEMA_VERSION, ExitCode } from './constant.js';
3
+ let isJsonMode = false;
4
+ export function setJsonMode(value) {
5
+ isJsonMode = !!value;
6
+ }
7
+ export function getJsonMode() {
8
+ return isJsonMode;
9
+ }
10
+ /**
11
+ * 统一输出 JSON 信封到 stdout,并以指定退出码结束进程或返回信封
12
+ */
13
+ export function sendJson(envelope, exitCode) {
14
+ const result = {
15
+ schemaVersion: SCHEMA_VERSION,
16
+ ok: envelope.ok !== undefined ? envelope.ok : true,
17
+ command: envelope.command || 'unknown',
18
+ ...envelope
19
+ };
20
+ process.stdout.write(JSON.stringify(result, null, 2) + '\n');
21
+ if (exitCode !== undefined) {
22
+ process.exit(exitCode);
23
+ }
24
+ }
25
+ /**
26
+ * 输出日志或进度信息:在 JSON 模式下重定向至 stderr,在普通模式下输出至 stdout
27
+ */
28
+ export function logInfo(message) {
29
+ if (isJsonMode) {
30
+ process.stderr.write(`[INFO] ${message}\n`);
31
+ }
32
+ else {
33
+ console.log(message);
34
+ }
35
+ }
36
+ export function logWarn(message) {
37
+ if (isJsonMode) {
38
+ process.stderr.write(`[WARN] ${message}\n`);
39
+ }
40
+ else {
41
+ console.warn(`\x1b[33m${message}\x1b[0m`);
42
+ }
43
+ }
44
+ export function logError(message) {
45
+ if (isJsonMode) {
46
+ process.stderr.write(`[ERROR] ${message}\n`);
47
+ }
48
+ else {
49
+ console.error(`\x1b[31m${message}\x1b[0m`);
50
+ }
51
+ }
52
+ /**
53
+ * 失败处理:统一支持 JSON 信封和控制台输出
54
+ */
55
+ export function fail(options) {
56
+ const { command, error, exitCode = ExitCode.GENERAL_ERROR, extra = {} } = options;
57
+ if (isJsonMode) {
58
+ sendJson({
59
+ command,
60
+ ok: false,
61
+ error,
62
+ ...extra
63
+ }, exitCode);
64
+ }
65
+ else {
66
+ logError(`\n✖ 错误: ${error}`);
67
+ process.exit(exitCode);
68
+ }
69
+ process.exit(exitCode);
70
+ }
71
+ /**
72
+ * 创建 Spinner(在 JSON 模式下静默)
73
+ */
74
+ export function createSpinner(text) {
75
+ if (isJsonMode) {
76
+ return {
77
+ start: () => ({ text }),
78
+ succeed: (t) => {
79
+ if (t) {
80
+ process.stderr.write(`[SUCCESS] ${t}\n`);
81
+ }
82
+ },
83
+ fail: (t) => {
84
+ if (t) {
85
+ process.stderr.write(`[FAIL] ${t}\n`);
86
+ }
87
+ },
88
+ stop: () => { },
89
+ text
90
+ };
91
+ }
92
+ const spinner = ora(text);
93
+ return spinner;
94
+ }
95
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/common/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export function toProjectPackageName(name) {
2
+ const unscoped = name.replace(/^@[^/]+\//, '');
3
+ return `@farris/project-${unscoped}`;
4
+ }
5
+ //# sourceMappingURL=project-package-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-package-name.js","sourceRoot":"","sources":["../../src/common/project-package-name.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,mBAAmB,QAAQ,EAAE,CAAC;AACvC,CAAC"}