@farris/cli 2.1.8 → 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.
- package/lib/commands/build-components.js +40 -31
- package/lib/commands/build-components.js.map +1 -1
- package/lib/commands/build-lib.js +7 -7
- package/lib/commands/build-lib.js.map +1 -1
- package/lib/commands/create-app-options.js +73 -0
- package/lib/commands/create-app-options.js.map +1 -0
- package/lib/commands/create-app.js +71 -40
- package/lib/commands/create-app.js.map +1 -1
- package/lib/common/component-file-name.js +4 -0
- package/lib/common/component-file-name.js.map +1 -0
- package/lib/common/constant.js +1 -1
- package/lib/common/constant.js.map +1 -1
- package/lib/common/generate-app.js +45 -36
- package/lib/common/generate-app.js.map +1 -1
- package/lib/common/get-farris-config.js +19 -5
- package/lib/common/get-farris-config.js.map +1 -1
- package/lib/common/get-vite-config.js +7 -6
- package/lib/common/get-vite-config.js.map +1 -1
- package/lib/common/lib-package-exports.js +21 -0
- package/lib/common/lib-package-exports.js.map +1 -0
- package/lib/common/list-lib-components.js +24 -0
- package/lib/common/list-lib-components.js.map +1 -0
- package/lib/common/project-package-name.js +5 -0
- package/lib/common/project-package-name.js.map +1 -0
- package/lib/common/template-manifest.js +17 -0
- package/lib/common/template-manifest.js.map +1 -0
- package/lib/config/vite-component.js +9 -7
- package/lib/config/vite-component.js.map +1 -1
- package/lib/index.js +14 -5
- package/lib/index.js.map +1 -1
- package/lib/plugins/create-package-json.js +26 -11
- package/lib/plugins/create-package-json.js.map +1 -1
- package/package.json +3 -2
- package/templates/lib/.changeset/README.md +1 -0
- package/templates/lib/.changeset/config.json +11 -0
- package/templates/lib/.gitlab-ci.yml +62 -0
- package/templates/lib/README.md +3 -0
- package/templates/lib/components/button/button.spec.ts +8 -0
- package/templates/lib/components/button/index.ts +7 -0
- package/templates/lib/components/button/src/button.scss +10 -0
- package/templates/lib/components/button/src/button.vue +12 -0
- package/templates/lib/components/common/with-install.ts +9 -0
- package/templates/lib/components/index.ts +10 -0
- package/templates/lib/farris.config.mjs +13 -0
- package/templates/lib/index.html +12 -0
- package/templates/lib/package.json +26 -0
- package/templates/lib/src/App.vue +7 -0
- package/templates/lib/src/main.ts +4 -0
- package/templates/lib/tsconfig.json +7 -0
- package/templates/lib/vitest.config.ts +9 -0
- package/templates/mobile/.changeset/README.md +4 -0
- package/templates/mobile/.changeset/config.json +11 -0
- package/templates/mobile/.gitlab-ci.yml +63 -0
- package/templates/mobile/package.json +9 -2
- package/templates/mobile/project.json +4 -0
- package/templates/mobile/src/components/TheButton.spec.ts +8 -0
- package/templates/mobile/vitest.config.ts +9 -0
- package/templates/web/.changeset/README.md +4 -0
- package/templates/web/.changeset/config.json +11 -0
- package/templates/web/.gitlab-ci.yml +63 -0
- package/templates/web/package.json +9 -2
- package/templates/web/project.json +4 -0
- package/templates/web/src/components/TheButton.spec.ts +8 -0
- package/templates/web/vitest.config.ts +9 -0
|
@@ -1,40 +1,49 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { resolve } from
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
3
|
import ora from 'ora';
|
|
4
|
-
import { buildCommon } from
|
|
5
|
-
import { buildCss } from
|
|
6
|
-
import { CWD } from
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const BaseOutDir = './package/components';
|
|
4
|
+
import { buildCommon } from './build.js';
|
|
5
|
+
import { buildCss } from './build-css.js';
|
|
6
|
+
import { CWD } from '../common/constant.js';
|
|
7
|
+
import { getFarrisConfigAsync } from '../common/get-farris-config.js';
|
|
8
|
+
import { listLibComponents } from '../common/list-lib-components.js';
|
|
10
9
|
export async function buildComponents(options) {
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
const farris = await getFarrisConfigAsync(options.configFile);
|
|
11
|
+
const names = listLibComponents(process.cwd(), farris.excludeComponents);
|
|
12
|
+
if (names.length === 0) {
|
|
13
|
+
throw new Error('未找到可构建的组件(components/*/index.ts)');
|
|
14
|
+
}
|
|
15
|
+
const componentOutDir = farris.componentOutDir || './package/components';
|
|
16
|
+
const outDir = farris.outDir || 'lib';
|
|
17
|
+
const entry = Object.fromEntries(names.map((name) => [name, resolve(CWD, 'components', name, 'index.ts')]));
|
|
18
|
+
const spinner = ora('build components begin').start();
|
|
19
|
+
spinner.text = 'building components';
|
|
20
|
+
await buildCommon({
|
|
21
|
+
...options,
|
|
22
|
+
type: 'component',
|
|
23
|
+
config: {
|
|
21
24
|
publicDir: '',
|
|
22
25
|
build: {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
outDir
|
|
26
|
+
emptyOutDir: false,
|
|
27
|
+
lib: { entry },
|
|
28
|
+
outDir: resolve(CWD, componentOutDir)
|
|
27
29
|
}
|
|
28
|
-
};
|
|
29
|
-
spinner.text = `building ${component}`;
|
|
30
|
-
await buildCommon({ ...options, config, type: 'component' });
|
|
31
|
-
spinner.succeed(`build ${component} success`);
|
|
32
|
-
const cssEntry = `${BaseEntry}/${component}/src/${component}.scss`;
|
|
33
|
-
if (!existsSync(cssEntry)) {
|
|
34
|
-
return;
|
|
35
30
|
}
|
|
36
|
-
await buildCss({ ...options, entry: cssEntry, outfile: `${BaseOutDir}/${component}/index.css`, showSpinner: false });
|
|
37
31
|
});
|
|
32
|
+
const cssFiles = [];
|
|
33
|
+
for (const name of names) {
|
|
34
|
+
const scss = resolve(CWD, 'components', name, 'src', `${name}.scss`);
|
|
35
|
+
if (!existsSync(scss)) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const outfile = resolve(CWD, componentOutDir, name, 'index.css');
|
|
39
|
+
await buildCss({ ...options, entry: scss, outfile, showSpinner: false });
|
|
40
|
+
cssFiles.push(outfile);
|
|
41
|
+
}
|
|
42
|
+
if (cssFiles.length > 0) {
|
|
43
|
+
const aggregateDir = resolve(CWD, outDir);
|
|
44
|
+
mkdirSync(aggregateDir, { recursive: true });
|
|
45
|
+
writeFileSync(resolve(aggregateDir, 'index.css'), cssFiles.map((file) => readFileSync(file, 'utf-8')).join('\n'));
|
|
46
|
+
}
|
|
47
|
+
spinner.succeed('build components success');
|
|
38
48
|
}
|
|
39
|
-
;
|
|
40
49
|
//# sourceMappingURL=build-components.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-components.js","sourceRoot":"","sources":["../../src/commands/build-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"build-components.js","sourceRoot":"","sources":["../../src/commands/build-components.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import ora from 'ora';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
2
3
|
import { buildCommon } from "./build.js";
|
|
3
4
|
import { generateTypes } from "../plugins/dts.js";
|
|
4
|
-
// import { buildCss } from './build-css.js';
|
|
5
5
|
import { createPackageJson } from '../plugins/create-package-json.js';
|
|
6
|
+
import { getFarrisConfigAsync } from '../common/get-farris-config.js';
|
|
7
|
+
import { CWD } from '../common/constant.js';
|
|
6
8
|
export async function buildLib(options) {
|
|
7
9
|
const { dts = true, emitPackage } = options;
|
|
10
|
+
const farrisConfig = await getFarrisConfigAsync(options.configFile);
|
|
11
|
+
const outDir = farrisConfig.outDir || 'lib';
|
|
12
|
+
const typesDir = resolve(CWD, outDir, 'types');
|
|
8
13
|
const config = {
|
|
9
14
|
publicDir: '',
|
|
10
15
|
plugins: [
|
|
11
|
-
dts && generateTypes(
|
|
16
|
+
dts && generateTypes('./components', typesDir),
|
|
12
17
|
emitPackage && createPackageJson()
|
|
13
18
|
]
|
|
14
19
|
};
|
|
15
20
|
const spinner = ora(`build lib begin`).start();
|
|
16
21
|
spinner.text = `building lib`;
|
|
17
22
|
await buildCommon({ ...options, config, type: 'lib' });
|
|
18
|
-
// const { css } = libConfig.build;
|
|
19
|
-
// if (existsSync(css.entry)) {
|
|
20
|
-
// spinner.text = `building css`;
|
|
21
|
-
// await buildCss({ entry: css.entry, outfile: css.outfile });
|
|
22
|
-
// }
|
|
23
23
|
spinner.succeed(`build lib success`);
|
|
24
24
|
}
|
|
25
25
|
;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-lib.js","sourceRoot":"","sources":["../../src/commands/build-lib.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,WAAW,EAAsB,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"build-lib.js","sourceRoot":"","sources":["../../src/commands/build-lib.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAsB,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAQ5C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,EAAE,GAAG,GAAG,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,KAAK,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,EAAE;QACb,OAAO,EAAE;YACP,GAAG,IAAI,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC;YAC9C,WAAW,IAAI,iBAAiB,EAAE;SACnC;KACF,CAAC;IACF,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE/C,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;IAE9B,MAAM,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvD,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AACvC,CAAC;AAAA,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { toProjectPackageName } from '../common/project-package-name.js';
|
|
4
|
+
export { toProjectPackageName };
|
|
5
|
+
export const ALLOWED_TYPES = ['app', 'lib'];
|
|
6
|
+
export const ALLOWED_PLATFORMS = ['web', 'mobile'];
|
|
7
|
+
export const ALLOWED_FORMATS = ['es', 'umd', 'systemjs'];
|
|
8
|
+
export const DEFAULT_NAME = 'my-project';
|
|
9
|
+
export const DEFAULT_LIB_FORMATS = ['es', 'umd'];
|
|
10
|
+
export const DEFAULT_APP_FORMAT = 'es';
|
|
11
|
+
export const DEFAULT_PLATFORM = 'web';
|
|
12
|
+
export class CreateAppError extends Error {
|
|
13
|
+
constructor(message) {
|
|
14
|
+
super(message);
|
|
15
|
+
this.name = 'CreateAppError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function assertAllowed(kind, value, allowed) {
|
|
19
|
+
if (!allowed.includes(value)) {
|
|
20
|
+
throw new CreateAppError(`非法的 ${kind}: ${value},允许值为 ${allowed.join(', ')}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function parseFormatsFlag(raw) {
|
|
24
|
+
if (raw === undefined) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
const parts = raw.split(',').map((part) => part.trim());
|
|
28
|
+
if (parts.length === 0 || parts.some((part) => part === '')) {
|
|
29
|
+
throw new CreateAppError('非法的 --formats: 不能为空');
|
|
30
|
+
}
|
|
31
|
+
parts.forEach((part) => assertAllowed('--formats', part, ALLOWED_FORMATS));
|
|
32
|
+
return parts;
|
|
33
|
+
}
|
|
34
|
+
export function validateCliInput(input) {
|
|
35
|
+
if (input.type !== undefined) {
|
|
36
|
+
assertAllowed('--type', input.type, ALLOWED_TYPES);
|
|
37
|
+
}
|
|
38
|
+
if (input.platform !== undefined) {
|
|
39
|
+
assertAllowed('--platform', input.platform, ALLOWED_PLATFORMS);
|
|
40
|
+
}
|
|
41
|
+
if (input.format !== undefined) {
|
|
42
|
+
assertAllowed('--format', input.format, ALLOWED_FORMATS);
|
|
43
|
+
}
|
|
44
|
+
if (input.formats !== undefined) {
|
|
45
|
+
parseFormatsFlag(input.formats);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export function resolveNonInteractiveOptions(input) {
|
|
49
|
+
validateCliInput(input);
|
|
50
|
+
if (!input.type) {
|
|
51
|
+
throw new CreateAppError('--type 在使用 -y / --yes 时必填');
|
|
52
|
+
}
|
|
53
|
+
const name = input.name && input.name.trim() !== '' ? input.name : DEFAULT_NAME;
|
|
54
|
+
if (input.type === 'lib') {
|
|
55
|
+
return {
|
|
56
|
+
name,
|
|
57
|
+
type: 'lib',
|
|
58
|
+
formats: parseFormatsFlag(input.formats) ?? [...DEFAULT_LIB_FORMATS]
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
name,
|
|
63
|
+
type: 'app',
|
|
64
|
+
platform: input.platform ?? DEFAULT_PLATFORM,
|
|
65
|
+
format: input.format ?? DEFAULT_APP_FORMAT
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export function assertTargetDirectoryFree(name, cwd = process.cwd()) {
|
|
69
|
+
if (existsSync(resolve(cwd, name))) {
|
|
70
|
+
throw new CreateAppError(`目标目录已存在: ${name}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=create-app-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-app-options.js","sourceRoot":"","sources":["../../src/commands/create-app-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,55 +1,86 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import inquirer from 'inquirer';
|
|
2
|
+
import { generateApp } from '../common/generate-app.js';
|
|
3
|
+
import { assertTargetDirectoryFree, parseFormatsFlag, resolveNonInteractiveOptions, validateCliInput } from './create-app-options.js';
|
|
3
4
|
const prompt = inquirer.createPromptModule();
|
|
4
5
|
const questions = [
|
|
5
6
|
{
|
|
6
|
-
type:
|
|
7
|
-
name:
|
|
8
|
-
message:
|
|
9
|
-
default:
|
|
7
|
+
type: 'input',
|
|
8
|
+
name: 'name',
|
|
9
|
+
message: 'What is your project name?',
|
|
10
|
+
default: 'my-project'
|
|
10
11
|
},
|
|
11
12
|
{
|
|
12
|
-
type:
|
|
13
|
-
name:
|
|
14
|
-
message:
|
|
15
|
-
choices: [
|
|
13
|
+
type: 'list',
|
|
14
|
+
name: 'type',
|
|
15
|
+
message: 'What type of project is this?',
|
|
16
|
+
choices: ['app', 'lib']
|
|
16
17
|
},
|
|
17
18
|
{
|
|
18
|
-
type:
|
|
19
|
-
name:
|
|
20
|
-
message:
|
|
21
|
-
choices: [
|
|
22
|
-
when: (response) =>
|
|
23
|
-
const { type } = response;
|
|
24
|
-
return type === 'app';
|
|
25
|
-
}
|
|
19
|
+
type: 'list',
|
|
20
|
+
name: 'platform',
|
|
21
|
+
message: 'What platform of project is this?',
|
|
22
|
+
choices: ['web', 'mobile'],
|
|
23
|
+
when: (response) => response.type === 'app'
|
|
26
24
|
},
|
|
27
25
|
{
|
|
28
|
-
type:
|
|
29
|
-
name:
|
|
30
|
-
message:
|
|
31
|
-
choices: [
|
|
32
|
-
default: [
|
|
33
|
-
when: (response) =>
|
|
34
|
-
const { type } = response;
|
|
35
|
-
return type === 'lib';
|
|
36
|
-
}
|
|
26
|
+
type: 'checkbox',
|
|
27
|
+
name: 'formats',
|
|
28
|
+
message: 'What output format of project is this?',
|
|
29
|
+
choices: ['es', 'umd', 'systemjs'],
|
|
30
|
+
default: ['es', 'umd'],
|
|
31
|
+
when: (response) => response.type === 'lib'
|
|
37
32
|
},
|
|
38
33
|
{
|
|
39
|
-
type:
|
|
40
|
-
name:
|
|
41
|
-
message:
|
|
42
|
-
choices: [
|
|
43
|
-
default:
|
|
44
|
-
when: (response) =>
|
|
45
|
-
const { type } = response;
|
|
46
|
-
return type === 'app';
|
|
47
|
-
}
|
|
34
|
+
type: 'list',
|
|
35
|
+
name: 'format',
|
|
36
|
+
message: 'What output format of project is this?',
|
|
37
|
+
choices: ['es', 'umd', 'systemjs'],
|
|
38
|
+
default: 'es',
|
|
39
|
+
when: (response) => response.type === 'app'
|
|
48
40
|
}
|
|
49
41
|
];
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
42
|
+
function toGenerateOptions(answers) {
|
|
43
|
+
if (answers.type === 'lib') {
|
|
44
|
+
return { name: answers.name, type: 'lib', formats: answers.formats };
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
name: answers.name,
|
|
48
|
+
type: 'app',
|
|
49
|
+
platform: answers.platform,
|
|
50
|
+
format: answers.format
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function initialAnswers(input) {
|
|
54
|
+
const initial = {};
|
|
55
|
+
if (input.name) {
|
|
56
|
+
initial.name = input.name;
|
|
57
|
+
}
|
|
58
|
+
if (input.type) {
|
|
59
|
+
initial.type = input.type;
|
|
60
|
+
}
|
|
61
|
+
if (input.platform) {
|
|
62
|
+
initial.platform = input.platform;
|
|
63
|
+
}
|
|
64
|
+
if (input.format) {
|
|
65
|
+
initial.format = input.format;
|
|
66
|
+
}
|
|
67
|
+
if (input.formats !== undefined) {
|
|
68
|
+
initial.formats = parseFormatsFlag(input.formats);
|
|
69
|
+
}
|
|
70
|
+
return initial;
|
|
71
|
+
}
|
|
72
|
+
export async function createApp(nameArg, commandOptions = {}) {
|
|
73
|
+
const input = { ...commandOptions, name: nameArg ?? commandOptions.name };
|
|
74
|
+
validateCliInput(input);
|
|
75
|
+
if (input.yes) {
|
|
76
|
+
const options = resolveNonInteractiveOptions(input);
|
|
77
|
+
assertTargetDirectoryFree(options.name);
|
|
78
|
+
generateApp(options);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const answers = await prompt(questions, initialAnswers(input));
|
|
82
|
+
const options = toGenerateOptions(answers);
|
|
83
|
+
assertTargetDirectoryFree(options.name);
|
|
84
|
+
generateApp(options);
|
|
53
85
|
}
|
|
54
|
-
;
|
|
55
86
|
//# sourceMappingURL=create-app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-file-name.js","sourceRoot":"","sources":["../../src/common/component-file-name.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,SAAiB;IAClE,OAAO,GAAG,SAAS,eAAe,CAAC;AACrC,CAAC"}
|
package/lib/common/constant.js
CHANGED
|
@@ -26,7 +26,7 @@ export const SCHEMA_VERSION = 1;
|
|
|
26
26
|
export const CLI_VERSION = getVersion();
|
|
27
27
|
// Catalog Dependency Versions Baseline
|
|
28
28
|
export const DEFAULT_CATALOG_VERSIONS = {
|
|
29
|
-
'@farris/ui-vue': '1.8.5-beta.
|
|
29
|
+
'@farris/ui-vue': '1.8.5-beta.4',
|
|
30
30
|
'@farris/cli': CLI_VERSION,
|
|
31
31
|
'typescript': '5.7.3',
|
|
32
32
|
'vite': '5.4.19',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/common/constant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,SAAS,WAAW,CAAC,GAAW;IAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;QAC1F,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE5E,aAAa;AACb,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IAC/B,MAAM,EAAE,WAAW,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IACpD,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;AAExC,uCAAuC;AACvC,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC5D,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/common/constant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,SAAS,WAAW,CAAC,GAAW;IAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;QAC1F,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE5E,aAAa;AACb,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IAC/B,MAAM,EAAE,WAAW,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IACpD,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;AAExC,uCAAuC;AACvC,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC5D,gBAAgB,EAAE,cAAc;IAChC,aAAa,EAAE,WAAW;IAC1B,YAAY,EAAE,OAAO;IACrB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,YAAY,EAAE,OAAO;IACrB,SAAS,EAAE,OAAO;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACnB,CAAC;AAEF,mBAAmB;AACnB,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,iBAAiB;CAC1B,CAAC;AAEF,aAAa;AACb,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAChB,6CAAW,CAAA;IACX,yDAAiB,CAAA;IACjB,6DAAmB,CAAA;IACnB,yDAAiB,CAAA;IACjB,+CAAY,CAAA;AAChB,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAED,0BAA0B;AAC1B,MAAM,CAAN,IAAY,eASX;AATD,WAAY,eAAe;IACvB,sCAAmB,CAAA;IACnB,kCAAe,CAAA;IACf,oDAAiC,CAAA;IACjC,gEAA6C,CAAA;IAC7C,4DAAyC,CAAA;IACzC,8EAA2D,CAAA;IAC3D,0DAAuC,CAAA;IACvC,oDAAiC,CAAA;AACrC,CAAC,EATW,eAAe,KAAf,eAAe,QAS1B"}
|
|
@@ -1,43 +1,52 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
return
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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');
|
|
22
23
|
Object.keys(args).forEach((key) => {
|
|
23
|
-
|
|
24
|
-
const value = Array.isArray(args[key]) ? Array2String(args[key]) : args[key];
|
|
25
|
-
content = content.replace(regexp, value);
|
|
24
|
+
content = content.replace(new RegExp(`<%= ${key} %>`, 'g'), args[key]);
|
|
26
25
|
});
|
|
27
|
-
writeFileSync(
|
|
28
|
-
}
|
|
26
|
+
writeFileSync(filePath, content);
|
|
27
|
+
}
|
|
29
28
|
export const generateApp = (options) => {
|
|
30
|
-
const { name, type, formats, format, platform } = options;
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
38
|
const cliVersion = getVersion();
|
|
39
|
-
|
|
40
|
-
|
|
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);
|
|
41
50
|
});
|
|
42
51
|
console.log(`cd ${name}`);
|
|
43
52
|
console.log(`npm install or yarn`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-app.js","sourceRoot":"","sources":["../../src/common/generate-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"generate-app.js","sourceRoot":"","sources":["../../src/common/generate-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,26 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
1
3
|
import { pathToFileURL } from 'node:url';
|
|
2
|
-
|
|
3
|
-
|
|
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
|
+
}
|
|
4
14
|
try {
|
|
5
|
-
|
|
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;
|
|
6
20
|
}
|
|
7
21
|
catch (err) {
|
|
8
|
-
|
|
22
|
+
const cause = err instanceof Error ? err.message : String(err);
|
|
23
|
+
throw new Error(`Failed to load farris config: ${resolved} — ${cause}`);
|
|
9
24
|
}
|
|
10
25
|
}
|
|
11
|
-
export { getFarrisConfigAsync };
|
|
12
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,
|
|
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"}
|
|
@@ -59,8 +59,11 @@ const formatFarrisConfig = (farrisConfig, type, cliOptions = {}) => {
|
|
|
59
59
|
const dependencies = externalDependencies ? getDependencies() : [];
|
|
60
60
|
let external = externals.include ? [...externals.include, ...dependencies] : dependencies;
|
|
61
61
|
external = external.filter((item) => !externals.exclude?.includes(item));
|
|
62
|
-
|
|
63
|
-
|
|
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;
|
|
64
67
|
}
|
|
65
68
|
if (cssInjected) {
|
|
66
69
|
plugins.push(cssInjectedByJsPlugin());
|
|
@@ -69,7 +72,7 @@ const formatFarrisConfig = (farrisConfig, type, cliOptions = {}) => {
|
|
|
69
72
|
process.env.PackageName = packageName;
|
|
70
73
|
}
|
|
71
74
|
// Rollup format 转换:systemjs -> system
|
|
72
|
-
const rollupFormat =
|
|
75
|
+
const rollupFormat = resolvedFormat === 'systemjs' ? 'system' : resolvedFormat;
|
|
73
76
|
const viteConfig = {
|
|
74
77
|
base: effectiveBase,
|
|
75
78
|
build: {
|
|
@@ -77,9 +80,7 @@ const formatFarrisConfig = (farrisConfig, type, cliOptions = {}) => {
|
|
|
77
80
|
minify,
|
|
78
81
|
lib: type === 'lib' ? lib : undefined,
|
|
79
82
|
rollupOptions: {
|
|
80
|
-
output: {
|
|
81
|
-
format: rollupFormat
|
|
82
|
-
},
|
|
83
|
+
output: hasLibFormats ? {} : { format: rollupFormat },
|
|
83
84
|
external: externals.filter ? externals.filter(external) : external
|
|
84
85
|
},
|
|
85
86
|
outDir
|
|
@@ -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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"}
|