@longzai-intelligence-builder/core 0.0.1
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/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +2 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/types.d.ts +130 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/factories/create-config.factory.d.ts.map +1 -0
- package/dist/factories/create-config.factory.js +90 -0
- package/dist/factories/create-config.factory.js.map +1 -0
- package/dist/factories/index.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"","sourcesContent":["export type { BuildFormat, BuilderConfig, ConfigOptions, DepsOptions, DtsOptions, EntryConfig, ExternalOption, Plugin, PresetDefinition } from './types.js';\n"]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import type { ExternalOption, InputOptions, ModuleFormat, OutputOptions, Plugin } from 'rolldown';
|
|
2
|
+
/**
|
|
3
|
+
* 构建格式类型
|
|
4
|
+
*/
|
|
5
|
+
type BuildFormat = ModuleFormat | 'es' | 'cjs';
|
|
6
|
+
/**
|
|
7
|
+
* dts 配置选项
|
|
8
|
+
*/
|
|
9
|
+
type DtsOptions = {
|
|
10
|
+
/**
|
|
11
|
+
* 是否生成声明文件
|
|
12
|
+
*/
|
|
13
|
+
enabled?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* tsconfig 文件路径,未指定时由 resolveTsconfig 自动检测
|
|
16
|
+
*/
|
|
17
|
+
tsconfig?: string;
|
|
18
|
+
/**
|
|
19
|
+
* 是否生成 sourcemap
|
|
20
|
+
*/
|
|
21
|
+
sourcemap?: boolean;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* 依赖处理选项
|
|
25
|
+
*/
|
|
26
|
+
type DepsOptions = {
|
|
27
|
+
/**
|
|
28
|
+
* 始终打包进产物的依赖
|
|
29
|
+
*/
|
|
30
|
+
alwaysBundle?: (string | RegExp)[];
|
|
31
|
+
/**
|
|
32
|
+
* 始终外部化的依赖
|
|
33
|
+
*/
|
|
34
|
+
neverBundle?: ExternalOption;
|
|
35
|
+
/**
|
|
36
|
+
* 是否跳过 node_modules 打包(库包默认 true,应用默认 false)
|
|
37
|
+
*/
|
|
38
|
+
skipNodeModulesBundle?: boolean;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* builder 构建配置,基于 rolldown 的输入输出选项扩展
|
|
42
|
+
*/
|
|
43
|
+
type BuilderConfig = {
|
|
44
|
+
/**
|
|
45
|
+
* 入口配置,字符串或记录对象
|
|
46
|
+
*/
|
|
47
|
+
entry?: string | Record<string, string>;
|
|
48
|
+
/**
|
|
49
|
+
* 输出格式
|
|
50
|
+
*/
|
|
51
|
+
format?: BuildFormat[] | BuildFormat;
|
|
52
|
+
/**
|
|
53
|
+
* 输出目录
|
|
54
|
+
*/
|
|
55
|
+
outdir?: string;
|
|
56
|
+
/**
|
|
57
|
+
* 是否生成 dts 声明文件
|
|
58
|
+
*/
|
|
59
|
+
dts?: DtsOptions | boolean;
|
|
60
|
+
/**
|
|
61
|
+
* tsconfig 文件路径
|
|
62
|
+
*/
|
|
63
|
+
tsconfig?: string;
|
|
64
|
+
/**
|
|
65
|
+
* 是否压缩产物
|
|
66
|
+
*/
|
|
67
|
+
minify?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* 是否生成 sourcemap
|
|
70
|
+
*/
|
|
71
|
+
sourcemap?: boolean | 'inline';
|
|
72
|
+
/**
|
|
73
|
+
* 构建前是否清理输出目录
|
|
74
|
+
*/
|
|
75
|
+
clean?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* 输出文件扩展名
|
|
78
|
+
*/
|
|
79
|
+
outExtensions?: () => {
|
|
80
|
+
js?: string;
|
|
81
|
+
dts?: string;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* 依赖处理选项
|
|
85
|
+
*/
|
|
86
|
+
deps?: DepsOptions;
|
|
87
|
+
/**
|
|
88
|
+
* 额外的 rolldown 输入选项
|
|
89
|
+
*/
|
|
90
|
+
inputOptions?: InputOptions;
|
|
91
|
+
/**
|
|
92
|
+
* 额外的 rolldown 输出选项
|
|
93
|
+
*/
|
|
94
|
+
outputOptions?: OutputOptions;
|
|
95
|
+
/**
|
|
96
|
+
* 额外的 rolldown 插件
|
|
97
|
+
*/
|
|
98
|
+
plugins?: Plugin[];
|
|
99
|
+
/**
|
|
100
|
+
* 外部依赖声明
|
|
101
|
+
*/
|
|
102
|
+
external?: InputOptions['external'];
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* 配置选项类型,消费方传入 defineConfig 的参数
|
|
106
|
+
*/
|
|
107
|
+
type ConfigOptions = Partial<BuilderConfig>;
|
|
108
|
+
/**
|
|
109
|
+
* 入口配置类型
|
|
110
|
+
*/
|
|
111
|
+
type EntryConfig = string | Record<string, string>;
|
|
112
|
+
/**
|
|
113
|
+
* 预设配置定义
|
|
114
|
+
*/
|
|
115
|
+
type PresetDefinition = {
|
|
116
|
+
/**
|
|
117
|
+
* 入口配置
|
|
118
|
+
*/
|
|
119
|
+
entry: EntryConfig;
|
|
120
|
+
/**
|
|
121
|
+
* 外部依赖
|
|
122
|
+
*/
|
|
123
|
+
external?: string[];
|
|
124
|
+
/**
|
|
125
|
+
* 额外配置
|
|
126
|
+
*/
|
|
127
|
+
extraConfig?: Partial<BuilderConfig>;
|
|
128
|
+
};
|
|
129
|
+
export type { BuildFormat, BuilderConfig, ConfigOptions, DepsOptions, DtsOptions, EntryConfig, ExternalOption, Plugin, PresetDefinition };
|
|
130
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElG;;GAEG;AACH,KAAK,WAAW,GAAG,YAAY,GAAG,IAAI,GAAG,KAAK,CAAC;AAE/C;;GAEG;AACH,KAAK,UAAU,GAAG;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,KAAK,WAAW,GAAG;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACnC;;OAEG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,KAAK,aAAa,GAAG;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,GAAG,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,KAAK,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5C;;GAEG;AACH,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD;;GAEG;AACH,KAAK,gBAAgB,GAAG;IACtB;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACtC,CAAC;AAEF,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ExternalOption, InputOptions, ModuleFormat, OutputOptions, Plugin } from 'rolldown';\n\n/**\n * 构建格式类型\n */\ntype BuildFormat = ModuleFormat | 'es' | 'cjs';\n\n/**\n * dts 配置选项\n */\ntype DtsOptions = {\n /**\n * 是否生成声明文件\n */\n enabled?: boolean;\n /**\n * tsconfig 文件路径,未指定时由 resolveTsconfig 自动检测\n */\n tsconfig?: string;\n /**\n * 是否生成 sourcemap\n */\n sourcemap?: boolean;\n};\n\n/**\n * 依赖处理选项\n */\ntype DepsOptions = {\n /**\n * 始终打包进产物的依赖\n */\n alwaysBundle?: (string | RegExp)[];\n /**\n * 始终外部化的依赖\n */\n neverBundle?: ExternalOption;\n /**\n * 是否跳过 node_modules 打包(库包默认 true,应用默认 false)\n */\n skipNodeModulesBundle?: boolean;\n};\n\n/**\n * builder 构建配置,基于 rolldown 的输入输出选项扩展\n */\ntype BuilderConfig = {\n /**\n * 入口配置,字符串或记录对象\n */\n entry?: string | Record<string, string>;\n /**\n * 输出格式\n */\n format?: BuildFormat[] | BuildFormat;\n /**\n * 输出目录\n */\n outdir?: string;\n /**\n * 是否生成 dts 声明文件\n */\n dts?: DtsOptions | boolean;\n /**\n * tsconfig 文件路径\n */\n tsconfig?: string;\n /**\n * 是否压缩产物\n */\n minify?: boolean;\n /**\n * 是否生成 sourcemap\n */\n sourcemap?: boolean | 'inline';\n /**\n * 构建前是否清理输出目录\n */\n clean?: boolean;\n /**\n * 输出文件扩展名\n */\n outExtensions?: () => { js?: string; dts?: string };\n /**\n * 依赖处理选项\n */\n deps?: DepsOptions;\n /**\n * 额外的 rolldown 输入选项\n */\n inputOptions?: InputOptions;\n /**\n * 额外的 rolldown 输出选项\n */\n outputOptions?: OutputOptions;\n /**\n * 额外的 rolldown 插件\n */\n plugins?: Plugin[];\n /**\n * 外部依赖声明\n */\n external?: InputOptions['external'];\n};\n\n/**\n * 配置选项类型,消费方传入 defineConfig 的参数\n */\ntype ConfigOptions = Partial<BuilderConfig>;\n\n/**\n * 入口配置类型\n */\ntype EntryConfig = string | Record<string, string>;\n\n/**\n * 预设配置定义\n */\ntype PresetDefinition = {\n /**\n * 入口配置\n */\n entry: EntryConfig;\n /**\n * 外部依赖\n */\n external?: string[];\n /**\n * 额外配置\n */\n extraConfig?: Partial<BuilderConfig>;\n};\n\nexport type { BuildFormat, BuilderConfig, ConfigOptions, DepsOptions, DtsOptions, EntryConfig, ExternalOption, Plugin, PresetDefinition };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-config.factory.d.ts","sourceRoot":"","sources":["../../src/factories/create-config.factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAe,MAAM,cAAc,CAAC;AAI9E;;GAEG;AACH,KAAK,eAAe,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,iBAAS,mBAAmB,CAAC,aAAa,EAAE,eAAe;6BAyC1B,aAAa,KAAQ,aAAa;mCAyB5B,aAAa,KAAQ,aAAa;EAiBxE;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { mergeArrayConfig, mergeExternalConfig, resolveTsconfig } from '../utils/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* 通用配置创建工厂
|
|
4
|
+
*
|
|
5
|
+
* 接收一个获取基础配置的函数,返回 defineConfig 和 defineBundleConfig。
|
|
6
|
+
* esm 和 dual 各自提供不同的 getBaseConfig 即可复用此逻辑。
|
|
7
|
+
*
|
|
8
|
+
* - defineConfig: 库包,生成 dts,外部化依赖
|
|
9
|
+
* - defineBundleConfig: CLI/应用,不生成 dts,自动 bundle 所有依赖
|
|
10
|
+
*
|
|
11
|
+
* @param getBaseConfig - 获取基础配置的函数
|
|
12
|
+
* @returns 包含 defineConfig 和 defineBundleConfig 的对象
|
|
13
|
+
*/
|
|
14
|
+
function createConfigFactory(getBaseConfig) {
|
|
15
|
+
/**
|
|
16
|
+
* 从 ConfigOptions 中提取 entry 并构建完整配置
|
|
17
|
+
*
|
|
18
|
+
* @param options - 配置选项
|
|
19
|
+
* @returns 完整的构建配置
|
|
20
|
+
*/
|
|
21
|
+
function buildConfig(options = {}) {
|
|
22
|
+
/**
|
|
23
|
+
* 从配置选项中解构出 entry 和其余选项
|
|
24
|
+
*/
|
|
25
|
+
const { entry = 'src/index.ts', ...restOptions } = options;
|
|
26
|
+
/**
|
|
27
|
+
* 构建入口配置对象
|
|
28
|
+
*/
|
|
29
|
+
const entryConfig = typeof entry === 'string' ? { index: entry } : entry;
|
|
30
|
+
/**
|
|
31
|
+
* 解析 tsconfig 配置
|
|
32
|
+
*/
|
|
33
|
+
const tsconfig = resolveTsconfig();
|
|
34
|
+
return {
|
|
35
|
+
...getBaseConfig(),
|
|
36
|
+
entry: entryConfig,
|
|
37
|
+
tsconfig,
|
|
38
|
+
...restOptions,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* 定义库包构建配置
|
|
43
|
+
*
|
|
44
|
+
* 默认行为:生成 dts,外部化 dependencies
|
|
45
|
+
* 支持通过 deps.alwaysBundle / deps.neverBundle 覆盖
|
|
46
|
+
*
|
|
47
|
+
* @param options - 配置选项
|
|
48
|
+
* @returns 完整的构建配置
|
|
49
|
+
*/
|
|
50
|
+
function defineConfig(options = {}) {
|
|
51
|
+
/**
|
|
52
|
+
* 构建基础配置
|
|
53
|
+
*/
|
|
54
|
+
const config = buildConfig(options);
|
|
55
|
+
return {
|
|
56
|
+
...config,
|
|
57
|
+
deps: {
|
|
58
|
+
...config.deps,
|
|
59
|
+
neverBundle: mergeExternalConfig(config.deps?.neverBundle, options.deps?.neverBundle),
|
|
60
|
+
alwaysBundle: mergeArrayConfig(config.deps?.alwaysBundle, options.deps?.alwaysBundle),
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 定义 CLI/应用构建配置
|
|
66
|
+
*
|
|
67
|
+
* - 不生成 dts
|
|
68
|
+
* - 自动 bundle 所有 node_modules 依赖(skipNodeModulesBundle: false)
|
|
69
|
+
*
|
|
70
|
+
* @param options - 配置选项
|
|
71
|
+
* @returns 完整的构建配置
|
|
72
|
+
*/
|
|
73
|
+
function defineBundleConfig(options = {}) {
|
|
74
|
+
/**
|
|
75
|
+
* 构建基础配置
|
|
76
|
+
*/
|
|
77
|
+
const config = buildConfig(options);
|
|
78
|
+
return {
|
|
79
|
+
...config,
|
|
80
|
+
dts: false,
|
|
81
|
+
deps: {
|
|
82
|
+
...config.deps,
|
|
83
|
+
skipNodeModulesBundle: false,
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
return { defineConfig, defineBundleConfig };
|
|
88
|
+
}
|
|
89
|
+
export { createConfigFactory };
|
|
90
|
+
//# sourceMappingURL=create-config.factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-config.factory.js","sourceRoot":"","sources":["../../src/factories/create-config.factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAO3F;;;;;;;;;;;GAWG;AACH,SAAS,mBAAmB,CAAC,aAA8B;IACzD;;;;;OAKG;IACH,SAAS,WAAW,CAAC,OAAO,GAAkB,EAAE;QAC9C;;WAEG;QACH,MAAM,EAAE,KAAK,GAAG,cAAc,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;QAE3D;;WAEG;QACH,MAAM,WAAW,GACf,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAEvD;;WAEG;QACH,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QAEnC,OAAO;YACL,GAAG,aAAa,EAAE;YAClB,KAAK,EAAE,WAAW;YAClB,QAAQ;YACR,GAAG,WAAW;SACf,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,YAAY,CAAC,OAAO,GAAkB,EAAE;QAC/C;;WAEG;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAEpC,OAAO;YACL,GAAG,MAAM;YACT,IAAI,EAAE;gBACJ,GAAG,MAAM,CAAC,IAAI;gBACd,WAAW,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC;gBACrF,YAAY,EAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC;aACtF;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,kBAAkB,CAAC,OAAO,GAAkB,EAAE;QACrD;;WAEG;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAEpC,OAAO;YACL,GAAG,MAAM;YACT,GAAG,EAAE,KAAK;YACV,IAAI,EAAE;gBACJ,GAAG,MAAM,CAAC,IAAI;gBACd,qBAAqB,EAAE,KAAK;aAC7B;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAC9C,CAAC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["import type { ConfigOptions, BuilderConfig, EntryConfig } from '@/core/types';\n\nimport { mergeArrayConfig, mergeExternalConfig, resolveTsconfig } from '../utils/index.js';\n\n/**\n * 获取基础配置的函数类型\n */\ntype GetBaseConfigFn = () => Partial<BuilderConfig>;\n\n/**\n * 通用配置创建工厂\n *\n * 接收一个获取基础配置的函数,返回 defineConfig 和 defineBundleConfig。\n * esm 和 dual 各自提供不同的 getBaseConfig 即可复用此逻辑。\n *\n * - defineConfig: 库包,生成 dts,外部化依赖\n * - defineBundleConfig: CLI/应用,不生成 dts,自动 bundle 所有依赖\n *\n * @param getBaseConfig - 获取基础配置的函数\n * @returns 包含 defineConfig 和 defineBundleConfig 的对象\n */\nfunction createConfigFactory(getBaseConfig: GetBaseConfigFn) {\n /**\n * 从 ConfigOptions 中提取 entry 并构建完整配置\n *\n * @param options - 配置选项\n * @returns 完整的构建配置\n */\n function buildConfig(options: ConfigOptions = {}): BuilderConfig {\n /**\n * 从配置选项中解构出 entry 和其余选项\n */\n const { entry = 'src/index.ts', ...restOptions } = options;\n\n /**\n * 构建入口配置对象\n */\n const entryConfig: EntryConfig | undefined =\n typeof entry === 'string' ? { index: entry } : entry;\n\n /**\n * 解析 tsconfig 配置\n */\n const tsconfig = resolveTsconfig();\n\n return {\n ...getBaseConfig(),\n entry: entryConfig,\n tsconfig,\n ...restOptions,\n };\n }\n\n /**\n * 定义库包构建配置\n *\n * 默认行为:生成 dts,外部化 dependencies\n * 支持通过 deps.alwaysBundle / deps.neverBundle 覆盖\n *\n * @param options - 配置选项\n * @returns 完整的构建配置\n */\n function defineConfig(options: ConfigOptions = {}): BuilderConfig {\n /**\n * 构建基础配置\n */\n const config = buildConfig(options);\n\n return {\n ...config,\n deps: {\n ...config.deps,\n neverBundle: mergeExternalConfig(config.deps?.neverBundle, options.deps?.neverBundle),\n alwaysBundle: mergeArrayConfig(config.deps?.alwaysBundle, options.deps?.alwaysBundle),\n },\n };\n }\n\n /**\n * 定义 CLI/应用构建配置\n *\n * - 不生成 dts\n * - 自动 bundle 所有 node_modules 依赖(skipNodeModulesBundle: false)\n *\n * @param options - 配置选项\n * @returns 完整的构建配置\n */\n function defineBundleConfig(options: ConfigOptions = {}): BuilderConfig {\n /**\n * 构建基础配置\n */\n const config = buildConfig(options);\n\n return {\n ...config,\n dts: false,\n deps: {\n ...config.deps,\n skipNodeModulesBundle: false,\n },\n };\n }\n\n return { defineConfig, defineBundleConfig };\n}\n\nexport { createConfigFactory };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type { BuildFormat, BuilderConfig, ConfigOptions, DepsOptions, DtsOptions, EntryConfig, ExternalOption, Plugin, PresetDefinition } from './core/types.js';
|
|
2
|
+
export { resolveTsconfig, mergeArrayConfig, normalizeExternal, mergeExternalConfig, } from './utils/index.js';
|
|
3
|
+
export { createConfigFactory } from './factories/index.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEjK,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC","sourcesContent":["export type { BuildFormat, BuilderConfig, ConfigOptions, DepsOptions, DtsOptions, EntryConfig, ExternalOption, Plugin, PresetDefinition } from './core/types.js';\n\nexport {\n resolveTsconfig,\n mergeArrayConfig,\n normalizeExternal,\n mergeExternalConfig,\n} from './utils/index.js';\n\nexport { createConfigFactory } from './factories/index.js';\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@longzai-intelligence-builder/core",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"private": false,
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsgo --build tsconfig/build.json && resolve-aliases -p tsconfig/build.json",
|
|
20
|
+
"build:prod": "NODE_ENV=production bun run build",
|
|
21
|
+
"prepublishOnly": "bun run build:prod",
|
|
22
|
+
"typecheck": "bun run typecheck:app && bun run typecheck:node && bun run typecheck:test",
|
|
23
|
+
"typecheck:app": "tsgo --noEmit -p tsconfig/app.json",
|
|
24
|
+
"typecheck:node": "tsgo --noEmit -p tsconfig/node.json",
|
|
25
|
+
"typecheck:test": "tsgo --noEmit -p tsconfig/test.json",
|
|
26
|
+
"lint": "oxlint && oxfmt --check",
|
|
27
|
+
"lint:fix": "oxlint --fix && oxfmt",
|
|
28
|
+
"test": "bun test",
|
|
29
|
+
"test:watch": "bun test --watch",
|
|
30
|
+
"test:coverage": "bun test --coverage",
|
|
31
|
+
"clean": "rimraf dist out .cache"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@typescript/native-preview": "^7.0.0-dev.20260707.2"
|
|
36
|
+
},
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"rolldown": "^1.0.0"
|
|
39
|
+
}
|
|
40
|
+
}
|