@doracli/type 0.0.2 → 0.0.4
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/README.md +4 -0
- package/package.json +4 -4
- package/src/cdn-type.ts +13 -0
- package/src/common.ts +11 -0
- package/src/dora-config-common.ts +83 -0
- package/src/dora-config-dts.ts +7 -0
- package/src/dora-config-esbuild.ts +10 -0
- package/src/dora-config-multiple.ts +18 -0
- package/src/dora-config-rollup.ts +10 -0
- package/src/dora-config-service.ts +48 -0
- package/src/dora-config-webpack.ts +30 -0
- package/src/dora-config.ts +22 -0
- package/src/env-params.ts +4 -0
- package/src/index.ts +10 -0
- package/src/module-type.ts +16 -0
- package/src/package-config.ts +8 -0
- package/src/ts-config-file.ts +5 -0
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@doracli/type",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "package by webpack",
|
|
5
5
|
"author": "cclr <18843152354@163.com>",
|
|
6
6
|
"homepage": "",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"types": "src/index.ts",
|
|
9
9
|
"directories": {
|
|
10
|
-
"
|
|
10
|
+
"src": "src"
|
|
11
11
|
},
|
|
12
12
|
"files": [
|
|
13
|
-
"
|
|
13
|
+
"src",
|
|
14
14
|
"README.md"
|
|
15
15
|
],
|
|
16
16
|
"publishConfig": {
|
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
"g:test": "vitest run",
|
|
23
23
|
"build": "ccf build"
|
|
24
24
|
},
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "a978bb7e7b32c192b1eb527dae5f25bbe1a2af86"
|
|
26
26
|
}
|
package/src/cdn-type.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TMode } from './dora-config-common';
|
|
2
|
+
|
|
3
|
+
type cdnKey =
|
|
4
|
+
| 'headAfterScript'
|
|
5
|
+
| 'headAfterStyle'
|
|
6
|
+
| 'bodyBeforeScript'
|
|
7
|
+
| 'bodyAfterScript';
|
|
8
|
+
|
|
9
|
+
export type TCdnConfigDefine = Partial<
|
|
10
|
+
Record<cdnKey, ((mode: TMode) => string[]) | string[]>
|
|
11
|
+
>;
|
|
12
|
+
|
|
13
|
+
export type TCdn = Record<cdnKey, string[]>;
|
package/src/common.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 全部属性变为可选,递归处理
|
|
3
|
+
*/
|
|
4
|
+
export type PartialRecursive<T> = {
|
|
5
|
+
[P in keyof T]?: T[P] extends object ? PartialRecursive<T[P]> : T[P];
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
|
+
export type TAny = any;
|
|
10
|
+
|
|
11
|
+
export type TPlainObject = Record<string, TAny>;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { TAny, TPlainObject } from './common';
|
|
2
|
+
import type { TModule } from './module-type';
|
|
3
|
+
|
|
4
|
+
export type TMode = 'development' | 'production';
|
|
5
|
+
|
|
6
|
+
/** 配置类型 */
|
|
7
|
+
export type TConfigType = 'library' | 'application' | 'plugin';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* 模块配置
|
|
11
|
+
* - 模块格式
|
|
12
|
+
* - 模块的一些其他配置
|
|
13
|
+
*/
|
|
14
|
+
export type TLib = {
|
|
15
|
+
format: TModule;
|
|
16
|
+
[key: string]: TAny;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export type TOutput = {
|
|
20
|
+
/** 出口文件地址 */
|
|
21
|
+
file?: string;
|
|
22
|
+
/**
|
|
23
|
+
* 出口文件目录
|
|
24
|
+
* @default lib
|
|
25
|
+
*/
|
|
26
|
+
path: string;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* 项目通用配置
|
|
31
|
+
* @description 单任务配置
|
|
32
|
+
* @description 路径只要是 ‘/’ 开头都按绝对路径解析,否则按执行目录进行相对路径解析
|
|
33
|
+
*/
|
|
34
|
+
export type TDoraConfigCommon = {
|
|
35
|
+
/**
|
|
36
|
+
* 模块名称
|
|
37
|
+
* 1. 多模块时必填,会作为路径的一部分
|
|
38
|
+
* 2. 作为标志性的名字
|
|
39
|
+
* 3. umd/iife 模块的名字 (低优先级)
|
|
40
|
+
*/
|
|
41
|
+
name: string;
|
|
42
|
+
/** 配置类型 */
|
|
43
|
+
type: TConfigType;
|
|
44
|
+
/** 入口地址 */
|
|
45
|
+
input: string;
|
|
46
|
+
/** 出口配置 */
|
|
47
|
+
output: TOutput;
|
|
48
|
+
/** 单模块 */
|
|
49
|
+
lib: TLib;
|
|
50
|
+
/** 输出单格式 lib 的简写 */
|
|
51
|
+
format: TModule;
|
|
52
|
+
/** 多模块配置 */
|
|
53
|
+
libList: TLib[];
|
|
54
|
+
/** 输出多格式 libList 的简写 */
|
|
55
|
+
formatList: TModule[];
|
|
56
|
+
/**
|
|
57
|
+
* 是否清除历史产物
|
|
58
|
+
* @default true
|
|
59
|
+
*/
|
|
60
|
+
clear: boolean;
|
|
61
|
+
/** 是否压缩代码 */
|
|
62
|
+
minimize: boolean;
|
|
63
|
+
/** 排除依赖,不打包进产物 */
|
|
64
|
+
externals: string[] | TPlainObject[];
|
|
65
|
+
/** 包含依赖,打包进产物 */
|
|
66
|
+
internals: string[];
|
|
67
|
+
/** 路径别名 */
|
|
68
|
+
alias: Record<string, string>;
|
|
69
|
+
/**
|
|
70
|
+
* 编译type 仅对ts项目生效
|
|
71
|
+
* @description 有值就开启
|
|
72
|
+
* @description 可单独制定输入,输出路径,没有就使用外层的配置
|
|
73
|
+
* @description 使用外层配置时,默认输出路径 path + /types/**.*
|
|
74
|
+
*/
|
|
75
|
+
dts:
|
|
76
|
+
| {
|
|
77
|
+
input?: string;
|
|
78
|
+
output?: string;
|
|
79
|
+
}
|
|
80
|
+
| false;
|
|
81
|
+
/** 复制文件配置 */
|
|
82
|
+
copy: { src: string; dest: string }[];
|
|
83
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TDoraConfigCommon } from './dora-config-common';
|
|
2
|
+
import type { TDoraConfigDts } from './dora-config-dts';
|
|
3
|
+
import type { TDoraConfigEsbuild } from './dora-config-esbuild';
|
|
4
|
+
import type { TDoraConfigRollup } from './dora-config-rollup';
|
|
5
|
+
import type { TDoraConfigService } from './dora-config-service';
|
|
6
|
+
import type { TDoraConfigWebpack } from './dora-config-webpack';
|
|
7
|
+
|
|
8
|
+
export type TDoraConfigMultiple = Partial<TDoraConfigCommon> & {
|
|
9
|
+
/** 隔离 */
|
|
10
|
+
split?: boolean;
|
|
11
|
+
|
|
12
|
+
webpackConfig?: TDoraConfigWebpack;
|
|
13
|
+
rspackConfig?: TDoraConfigWebpack;
|
|
14
|
+
rollupConfig?: TDoraConfigRollup;
|
|
15
|
+
esbuildConfig?: TDoraConfigEsbuild;
|
|
16
|
+
serviceConfig?: Partial<TDoraConfigService>;
|
|
17
|
+
dtsConfig?: TDoraConfigDts;
|
|
18
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export type TDoraConfigService = {
|
|
2
|
+
/** 是否自动打开浏览器,分场景 */
|
|
3
|
+
openBrowser: boolean;
|
|
4
|
+
/** 访问路径前缀,静态资源也会加前缀 */
|
|
5
|
+
publicPath: string;
|
|
6
|
+
/** portal */
|
|
7
|
+
https: boolean;
|
|
8
|
+
/** 主机,自动打开浏览器会访问 */
|
|
9
|
+
host: string;
|
|
10
|
+
/** 允许访问的域名列表 */
|
|
11
|
+
allowedHosts: 'all' | string[];
|
|
12
|
+
/** port */
|
|
13
|
+
port: number;
|
|
14
|
+
/** 代理接口 */
|
|
15
|
+
proxy: {
|
|
16
|
+
[path: string]: {
|
|
17
|
+
pathRewrite?: Record<string, string>;
|
|
18
|
+
headers?: Record<string, string>;
|
|
19
|
+
router: string | (() => string);
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* 静态资源服务
|
|
24
|
+
* 文件夹路径 -> 路由
|
|
25
|
+
* @default
|
|
26
|
+
* ```
|
|
27
|
+
* { './static': '/static' }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
static: {
|
|
31
|
+
[dirPath: string]: string;
|
|
32
|
+
};
|
|
33
|
+
/** 扫描接口文件的范围 */
|
|
34
|
+
scan: string;
|
|
35
|
+
/**
|
|
36
|
+
* 文件夹 -> 路由的映射,
|
|
37
|
+
* 默认文件夹路径就代表路由
|
|
38
|
+
*/
|
|
39
|
+
pathRouteMap: {
|
|
40
|
+
[dirPath: string]: {
|
|
41
|
+
/**
|
|
42
|
+
* 文件对应的路由,同一个文件可以对应多个路由
|
|
43
|
+
* 同一个文件对应一个实例,对应多个路由
|
|
44
|
+
*/
|
|
45
|
+
defs: string[];
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type TDoraConfigWebpack = {
|
|
2
|
+
/** 日志级别,默认 warn */
|
|
3
|
+
logging?: 'none' | 'error' | 'warn' | 'info' | 'log' | 'verbose' | undefined; // 只显示警告及以上日志
|
|
4
|
+
/**
|
|
5
|
+
* eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map
|
|
6
|
+
* 开发环境推荐:eval-cheap-module-source-map
|
|
7
|
+
* - 本地开发首次打包慢点没关系,因为 eval 缓存的原因, 热更新会很快
|
|
8
|
+
* - 开发中,我们每行代码不会写的太长,只需要定位到行就行,所以加上 cheap
|
|
9
|
+
* - 我们希望能够找到源代码的错误,而不是打包后的,所以需要加上 module
|
|
10
|
+
*/
|
|
11
|
+
devtool?: string;
|
|
12
|
+
/** 内置模块 */
|
|
13
|
+
externals?: string[];
|
|
14
|
+
/** 实验性功能 */
|
|
15
|
+
experiments?: Record<string, unknown>;
|
|
16
|
+
resolve?: {
|
|
17
|
+
alias?: Record<string, string>;
|
|
18
|
+
extensions?: string[];
|
|
19
|
+
};
|
|
20
|
+
resolveLoader?: {
|
|
21
|
+
modules?: string[];
|
|
22
|
+
};
|
|
23
|
+
loaderOptions?: {
|
|
24
|
+
postcssPluginExtra?: unknown[];
|
|
25
|
+
};
|
|
26
|
+
pluginsOptions?: {
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
+
WebpackBundleAnalyzer: any;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PartialRecursive } from './common';
|
|
2
|
+
import type { TDoraConfigCommon } from './dora-config-common';
|
|
3
|
+
import type { TDoraConfigDts } from './dora-config-dts';
|
|
4
|
+
import type { TDoraConfigEsbuild } from './dora-config-esbuild';
|
|
5
|
+
import type { TDoraConfigMultiple } from './dora-config-multiple';
|
|
6
|
+
import type { TDoraConfigRollup } from './dora-config-rollup';
|
|
7
|
+
import type { TDoraConfigService } from './dora-config-service';
|
|
8
|
+
import type { TDoraConfigWebpack } from './dora-config-webpack';
|
|
9
|
+
|
|
10
|
+
export type TDoraConfig = TDoraConfigCommon & {
|
|
11
|
+
multiple: TDoraConfigMultiple[] | false;
|
|
12
|
+
webpackConfig?: TDoraConfigWebpack;
|
|
13
|
+
rspackConfig?: TDoraConfigWebpack;
|
|
14
|
+
rollupConfig?: TDoraConfigRollup;
|
|
15
|
+
esbuildConfig?: TDoraConfigEsbuild;
|
|
16
|
+
serviceConfig?: Partial<TDoraConfigService>;
|
|
17
|
+
dtsConfig?: TDoraConfigDts;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export type TDoraConfigDefine =
|
|
21
|
+
| PartialRecursive<TDoraConfig>
|
|
22
|
+
| ((env: 'development' | 'production') => PartialRecursive<TDoraConfig>);
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './cdn-type';
|
|
2
|
+
export * from './dora-config';
|
|
3
|
+
export * from './dora-config-common';
|
|
4
|
+
export * from './dora-config-rollup';
|
|
5
|
+
export * from './dora-config-service';
|
|
6
|
+
export * from './dora-config-webpack';
|
|
7
|
+
export * from './env-params';
|
|
8
|
+
export * from './module-type';
|
|
9
|
+
export * from './package-config';
|
|
10
|
+
export * from './ts-config-file';
|