@fchc8/vite-plugin-multi-page 1.1.1 → 1.3.0
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-EN.md +183 -337
- package/README.md +191 -278
- package/dist/cli.js +649 -0
- package/dist/index.d.mts +43 -69
- package/dist/index.d.ts +43 -69
- package/dist/index.js +653 -428
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +649 -429
- package/dist/index.mjs.map +1 -1
- package/package.json +11 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,89 +1,63 @@
|
|
|
1
|
-
import { UserConfig,
|
|
1
|
+
import { UserConfig, Plugin } from 'vite';
|
|
2
2
|
|
|
3
3
|
interface MultiPageOptions {
|
|
4
4
|
entry?: string;
|
|
5
|
-
template?: string;
|
|
6
5
|
exclude?: string[];
|
|
6
|
+
template?: string;
|
|
7
7
|
placeholder?: string;
|
|
8
8
|
debug?: boolean;
|
|
9
|
-
|
|
9
|
+
strategies?: Record<string, ConfigStrategy>;
|
|
10
10
|
pageConfigs?: Record<string, PageConfig> | PageConfigFunction;
|
|
11
|
+
__forceBuildStrategy?: string;
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
external?: string | string[] | ((id: string) => boolean);
|
|
24
|
-
};
|
|
25
|
-
build?: {
|
|
26
|
-
target?: string | string[];
|
|
27
|
-
minify?: boolean | 'terser' | 'esbuild';
|
|
28
|
-
sourcemap?: boolean | 'inline' | 'hidden';
|
|
29
|
-
lib?: boolean | {
|
|
30
|
-
entry: string | string[] | {
|
|
31
|
-
[entryAlias: string]: string;
|
|
32
|
-
};
|
|
33
|
-
name?: string;
|
|
34
|
-
formats?: ('es' | 'cjs' | 'umd' | 'iife')[];
|
|
35
|
-
fileName?: string | ((format: string, entryName: string) => string);
|
|
36
|
-
};
|
|
37
|
-
cssCodeSplit?: boolean;
|
|
38
|
-
cssTarget?: string | string[];
|
|
39
|
-
rollupOptions?: any;
|
|
40
|
-
reportCompressedSize?: boolean;
|
|
41
|
-
chunkSizeWarningLimit?: number;
|
|
42
|
-
assetsDir?: string;
|
|
43
|
-
emptyOutDir?: boolean;
|
|
44
|
-
};
|
|
45
|
-
define?: Record<string, any>;
|
|
46
|
-
alias?: Record<string, string>;
|
|
47
|
-
server?: {
|
|
48
|
-
port?: number;
|
|
49
|
-
host?: string | boolean;
|
|
50
|
-
https?: boolean;
|
|
51
|
-
cors?: boolean;
|
|
52
|
-
headers?: Record<string, string>;
|
|
53
|
-
};
|
|
54
|
-
css?: {
|
|
55
|
-
modules?: any;
|
|
56
|
-
postcss?: any;
|
|
57
|
-
preprocessorOptions?: Record<string, any>;
|
|
58
|
-
devSourcemap?: boolean;
|
|
59
|
-
};
|
|
60
|
-
optimizeDeps?: {
|
|
61
|
-
entries?: string | string[];
|
|
62
|
-
exclude?: string[];
|
|
63
|
-
include?: string[];
|
|
64
|
-
esbuildOptions?: any;
|
|
65
|
-
};
|
|
13
|
+
type Options = MultiPageOptions;
|
|
14
|
+
interface BuildConfigOptions {
|
|
15
|
+
entry: string;
|
|
16
|
+
exclude: string[];
|
|
17
|
+
template: string;
|
|
18
|
+
placeholder: string;
|
|
19
|
+
strategies?: Record<string, ConfigStrategy>;
|
|
20
|
+
pageConfigs?: Record<string, PageConfig> | PageConfigFunction;
|
|
21
|
+
forceBuildStrategy?: string;
|
|
22
|
+
}
|
|
23
|
+
interface ConfigStrategy extends Omit<UserConfig, 'plugins'> {
|
|
66
24
|
}
|
|
67
|
-
interface
|
|
25
|
+
interface PageConfig {
|
|
68
26
|
strategy?: string;
|
|
69
|
-
template?: string;
|
|
70
|
-
exclude?: string[];
|
|
71
27
|
define?: Record<string, any>;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
match?: string
|
|
75
|
-
}
|
|
76
|
-
interface PageConfig extends PageConfigBase {
|
|
28
|
+
template?: string;
|
|
29
|
+
viteConfig?: UserConfig;
|
|
30
|
+
match?: string;
|
|
77
31
|
}
|
|
78
|
-
interface
|
|
32
|
+
interface PageContext {
|
|
79
33
|
pageName: string;
|
|
80
34
|
filePath: string;
|
|
81
35
|
relativePath: string;
|
|
36
|
+
fullPath?: string;
|
|
82
37
|
strategy?: string;
|
|
83
38
|
isMatched?: boolean;
|
|
84
39
|
}
|
|
85
|
-
type PageConfigFunction = (context:
|
|
40
|
+
type PageConfigFunction = (context: PageContext) => PageConfig | null;
|
|
41
|
+
interface PluginContext {
|
|
42
|
+
mode: string;
|
|
43
|
+
command: 'build' | 'serve';
|
|
44
|
+
isCLI: boolean;
|
|
45
|
+
}
|
|
46
|
+
type ConfigFunction = (context: PluginContext) => MultiPageOptions;
|
|
47
|
+
type ConfigTransformFunction = (config: MultiPageOptions, context: PluginContext) => MultiPageOptions;
|
|
48
|
+
declare function defineConfig(config: MultiPageOptions | ConfigFunction): MultiPageOptions | ConfigFunction;
|
|
49
|
+
declare function defineConfigTransform(transform: ConfigTransformFunction): ConfigTransformFunction;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* 构建时配置生成器
|
|
53
|
+
* 根据策略和页面配置生成多页面构建配置
|
|
54
|
+
*/
|
|
55
|
+
declare function generateBuildConfig(options: BuildConfigOptions): Record<string, UserConfig>;
|
|
56
|
+
/**
|
|
57
|
+
* 获取所有可用的构建策略
|
|
58
|
+
*/
|
|
59
|
+
declare function getAvailableStrategies(options: BuildConfigOptions): string[];
|
|
86
60
|
|
|
87
|
-
declare function viteMultiPage(
|
|
61
|
+
declare function viteMultiPage(transform?: ConfigTransformFunction): Plugin;
|
|
88
62
|
|
|
89
|
-
export { type
|
|
63
|
+
export { type ConfigFunction, type ConfigTransformFunction, type Options, type PageConfig, type PageContext, type PluginContext, viteMultiPage as default, defineConfig, defineConfigTransform, generateBuildConfig, getAvailableStrategies, viteMultiPage };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,89 +1,63 @@
|
|
|
1
|
-
import { UserConfig,
|
|
1
|
+
import { UserConfig, Plugin } from 'vite';
|
|
2
2
|
|
|
3
3
|
interface MultiPageOptions {
|
|
4
4
|
entry?: string;
|
|
5
|
-
template?: string;
|
|
6
5
|
exclude?: string[];
|
|
6
|
+
template?: string;
|
|
7
7
|
placeholder?: string;
|
|
8
8
|
debug?: boolean;
|
|
9
|
-
|
|
9
|
+
strategies?: Record<string, ConfigStrategy>;
|
|
10
10
|
pageConfigs?: Record<string, PageConfig> | PageConfigFunction;
|
|
11
|
+
__forceBuildStrategy?: string;
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
external?: string | string[] | ((id: string) => boolean);
|
|
24
|
-
};
|
|
25
|
-
build?: {
|
|
26
|
-
target?: string | string[];
|
|
27
|
-
minify?: boolean | 'terser' | 'esbuild';
|
|
28
|
-
sourcemap?: boolean | 'inline' | 'hidden';
|
|
29
|
-
lib?: boolean | {
|
|
30
|
-
entry: string | string[] | {
|
|
31
|
-
[entryAlias: string]: string;
|
|
32
|
-
};
|
|
33
|
-
name?: string;
|
|
34
|
-
formats?: ('es' | 'cjs' | 'umd' | 'iife')[];
|
|
35
|
-
fileName?: string | ((format: string, entryName: string) => string);
|
|
36
|
-
};
|
|
37
|
-
cssCodeSplit?: boolean;
|
|
38
|
-
cssTarget?: string | string[];
|
|
39
|
-
rollupOptions?: any;
|
|
40
|
-
reportCompressedSize?: boolean;
|
|
41
|
-
chunkSizeWarningLimit?: number;
|
|
42
|
-
assetsDir?: string;
|
|
43
|
-
emptyOutDir?: boolean;
|
|
44
|
-
};
|
|
45
|
-
define?: Record<string, any>;
|
|
46
|
-
alias?: Record<string, string>;
|
|
47
|
-
server?: {
|
|
48
|
-
port?: number;
|
|
49
|
-
host?: string | boolean;
|
|
50
|
-
https?: boolean;
|
|
51
|
-
cors?: boolean;
|
|
52
|
-
headers?: Record<string, string>;
|
|
53
|
-
};
|
|
54
|
-
css?: {
|
|
55
|
-
modules?: any;
|
|
56
|
-
postcss?: any;
|
|
57
|
-
preprocessorOptions?: Record<string, any>;
|
|
58
|
-
devSourcemap?: boolean;
|
|
59
|
-
};
|
|
60
|
-
optimizeDeps?: {
|
|
61
|
-
entries?: string | string[];
|
|
62
|
-
exclude?: string[];
|
|
63
|
-
include?: string[];
|
|
64
|
-
esbuildOptions?: any;
|
|
65
|
-
};
|
|
13
|
+
type Options = MultiPageOptions;
|
|
14
|
+
interface BuildConfigOptions {
|
|
15
|
+
entry: string;
|
|
16
|
+
exclude: string[];
|
|
17
|
+
template: string;
|
|
18
|
+
placeholder: string;
|
|
19
|
+
strategies?: Record<string, ConfigStrategy>;
|
|
20
|
+
pageConfigs?: Record<string, PageConfig> | PageConfigFunction;
|
|
21
|
+
forceBuildStrategy?: string;
|
|
22
|
+
}
|
|
23
|
+
interface ConfigStrategy extends Omit<UserConfig, 'plugins'> {
|
|
66
24
|
}
|
|
67
|
-
interface
|
|
25
|
+
interface PageConfig {
|
|
68
26
|
strategy?: string;
|
|
69
|
-
template?: string;
|
|
70
|
-
exclude?: string[];
|
|
71
27
|
define?: Record<string, any>;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
match?: string
|
|
75
|
-
}
|
|
76
|
-
interface PageConfig extends PageConfigBase {
|
|
28
|
+
template?: string;
|
|
29
|
+
viteConfig?: UserConfig;
|
|
30
|
+
match?: string;
|
|
77
31
|
}
|
|
78
|
-
interface
|
|
32
|
+
interface PageContext {
|
|
79
33
|
pageName: string;
|
|
80
34
|
filePath: string;
|
|
81
35
|
relativePath: string;
|
|
36
|
+
fullPath?: string;
|
|
82
37
|
strategy?: string;
|
|
83
38
|
isMatched?: boolean;
|
|
84
39
|
}
|
|
85
|
-
type PageConfigFunction = (context:
|
|
40
|
+
type PageConfigFunction = (context: PageContext) => PageConfig | null;
|
|
41
|
+
interface PluginContext {
|
|
42
|
+
mode: string;
|
|
43
|
+
command: 'build' | 'serve';
|
|
44
|
+
isCLI: boolean;
|
|
45
|
+
}
|
|
46
|
+
type ConfigFunction = (context: PluginContext) => MultiPageOptions;
|
|
47
|
+
type ConfigTransformFunction = (config: MultiPageOptions, context: PluginContext) => MultiPageOptions;
|
|
48
|
+
declare function defineConfig(config: MultiPageOptions | ConfigFunction): MultiPageOptions | ConfigFunction;
|
|
49
|
+
declare function defineConfigTransform(transform: ConfigTransformFunction): ConfigTransformFunction;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* 构建时配置生成器
|
|
53
|
+
* 根据策略和页面配置生成多页面构建配置
|
|
54
|
+
*/
|
|
55
|
+
declare function generateBuildConfig(options: BuildConfigOptions): Record<string, UserConfig>;
|
|
56
|
+
/**
|
|
57
|
+
* 获取所有可用的构建策略
|
|
58
|
+
*/
|
|
59
|
+
declare function getAvailableStrategies(options: BuildConfigOptions): string[];
|
|
86
60
|
|
|
87
|
-
declare function viteMultiPage(
|
|
61
|
+
declare function viteMultiPage(transform?: ConfigTransformFunction): Plugin;
|
|
88
62
|
|
|
89
|
-
export { type
|
|
63
|
+
export { type ConfigFunction, type ConfigTransformFunction, type Options, type PageConfig, type PageContext, type PluginContext, viteMultiPage as default, defineConfig, defineConfigTransform, generateBuildConfig, getAvailableStrategies, viteMultiPage };
|