@moluoxixi/vite-config 0.0.37
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/DESIGN.md +70 -0
- package/README.md +71 -0
- package/dist/addons/auto-import.d.ts +9 -0
- package/dist/addons/auto-import.js +6 -0
- package/dist/addons/components.d.ts +9 -0
- package/dist/addons/components.js +6 -0
- package/dist/addons/devtools.d.ts +9 -0
- package/dist/addons/devtools.js +6 -0
- package/dist/addons/i18n.d.ts +9 -0
- package/dist/addons/i18n.js +6 -0
- package/dist/addons/index.d.ts +28 -0
- package/dist/addons/index.js +59 -0
- package/dist/addons/layouts.d.ts +9 -0
- package/dist/addons/layouts.js +6 -0
- package/dist/addons/markdown.d.ts +9 -0
- package/dist/addons/markdown.js +6 -0
- package/dist/addons/pwa.d.ts +9 -0
- package/dist/addons/pwa.js +6 -0
- package/dist/addons/react.d.ts +9 -0
- package/dist/addons/react.js +6 -0
- package/dist/addons/tailwindcss.d.ts +9 -0
- package/dist/addons/tailwindcss.js +6 -0
- package/dist/addons/unocss.d.ts +9 -0
- package/dist/addons/unocss.js +6 -0
- package/dist/addons/vite-ssg.d.ts +18 -0
- package/dist/addons/vite-ssg.js +6 -0
- package/dist/addons/vitest.d.ts +9 -0
- package/dist/addons/vitest.js +6 -0
- package/dist/addons/vue-router.d.ts +9 -0
- package/dist/addons/vue-router.js +6 -0
- package/dist/addons/vue.d.ts +9 -0
- package/dist/addons/vue.js +6 -0
- package/dist/chunk-2BMF52EY.js +8 -0
- package/dist/chunk-7CLRGPQQ.js +8 -0
- package/dist/chunk-CG74BJ6T.js +8 -0
- package/dist/chunk-GKIEBF73.js +8 -0
- package/dist/chunk-GUIZM2YS.js +8 -0
- package/dist/chunk-HKGBYIAA.js +8 -0
- package/dist/chunk-IBJFH5NC.js +8 -0
- package/dist/chunk-M2ZFVZSN.js +8 -0
- package/dist/chunk-NQPL76JU.js +8 -0
- package/dist/chunk-OEBLHHRC.js +8 -0
- package/dist/chunk-PBJLIQ2R.js +8 -0
- package/dist/chunk-T5FUYGUC.js +0 -0
- package/dist/chunk-UXLJ2PKX.js +8 -0
- package/dist/chunk-WYQMKXD6.js +8 -0
- package/dist/chunk-YMSTBWUP.js +8 -0
- package/dist/index.d.ts +138 -0
- package/dist/index.js +815 -0
- package/package.json +183 -0
package/DESIGN.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# ViteConfig 设计契约
|
|
2
|
+
|
|
3
|
+
`@moluoxixi/vite-config` 是一个有明确取舍的 Vite preset。它的目标不是替代
|
|
4
|
+
`vite.config.ts`,而是把固定技术栈中重复、稳定、依赖驱动的配置收敛为可复用工厂。
|
|
5
|
+
|
|
6
|
+
## 设计定位
|
|
7
|
+
|
|
8
|
+
- 依赖图只能用于推断常见意图,不能成为不可覆盖的黑盒决策。
|
|
9
|
+
- 自动启用只覆盖高确定性的插件装配;业务语义、产物策略和性能优化默认交给调用方。
|
|
10
|
+
- 所有缺失依赖、插件导出异常和配置解析异常都必须显式失败,不允许静默降级。
|
|
11
|
+
- `createAppConfig` 和 `createLibConfig` 只承载各自场景的默认值,`getBaseConfig` 保持中性。
|
|
12
|
+
|
|
13
|
+
## 决策优先级
|
|
14
|
+
|
|
15
|
+
1. 显式 `false`:无论依赖是否存在,都关闭对应 addon。
|
|
16
|
+
2. 显式 `true` 或对象配置:启用 addon,并检查必需运行时依赖。
|
|
17
|
+
3. 依赖触发:当目标项目 `package.json` 命中 addon triggers 时自动启用。
|
|
18
|
+
4. 未命中依赖:不加载插件,不伪造空配置。
|
|
19
|
+
|
|
20
|
+
## 依赖语义
|
|
21
|
+
|
|
22
|
+
- addon 启用与依赖校验使用 `addonDeps`:`dependencies`、`devDependencies`、
|
|
23
|
+
`peerDependencies` 和 `optionalDependencies` 都算作“项目已声明该构建能力”。
|
|
24
|
+
- 库模式 external 使用发布语义:只 external `dependencies`、`peerDependencies`
|
|
25
|
+
和 `optionalDependencies`,避免把纯开发工具误写进库的运行时契约。
|
|
26
|
+
- `runtimeDeps` 只表达真实运行时依赖,不用于 Vite 插件自动启用判断。
|
|
27
|
+
|
|
28
|
+
## 可观测性
|
|
29
|
+
|
|
30
|
+
使用 `inspectViteFeatures(options)` 检查 addon 决策。它只读取目标 root 的依赖图,
|
|
31
|
+
不动态导入任何插件模块,适合在调试和脚手架输出中展示结果。
|
|
32
|
+
|
|
33
|
+
返回字段含义:
|
|
34
|
+
|
|
35
|
+
- `reason`:说明启用或关闭来自显式配置还是依赖推断。
|
|
36
|
+
- `matchedTriggers`:当前项目命中的触发依赖。
|
|
37
|
+
- `missingRequires`:启用后还缺少的必需运行时依赖。
|
|
38
|
+
|
|
39
|
+
## 类型边界
|
|
40
|
+
|
|
41
|
+
主入口 `ViteConfigOptions` 和 addon helper 都必须使用对应插件的真实配置类型,
|
|
42
|
+
不得把配置压成宽 `object` 或手写镜像类型。`@moluoxixi/vite-config` 是常规唯一导入入口,
|
|
43
|
+
必须导出所有 addon helper/type;`@moluoxixi/vite-config/addons` 和
|
|
44
|
+
`@moluoxixi/vite-config/addons/*` 只作为按 addon 拆分导入的辅助入口保留。
|
|
45
|
+
这样调用方直接在 `createAppConfig` 中传入 addon 配置,或从根入口导入 helper 时,
|
|
46
|
+
都能感知当前依赖版本支持的参数。
|
|
47
|
+
|
|
48
|
+
这意味着启用或配置某个 addon 的项目必须安装对应 optional peer;缺失依赖时,
|
|
49
|
+
TypeScript 解析或运行时动态导入都会暴露失败,不提供静默 fallback。`pwa` 的源码类型
|
|
50
|
+
直接来自 `vite-plugin-pwa` 官方导出;本仓库只把它作为 devDependency 用于开发期类型检查
|
|
51
|
+
和构建声明文件,消费者安装 `@moluoxixi/vite-config` 时不会因为该 devDependency 自动安装
|
|
52
|
+
PWA 插件,运行时仍按 optional peer 契约由目标项目自行声明。
|
|
53
|
+
|
|
54
|
+
Tailwind CSS 的自动启用只绑定官方集成入口 `@tailwindcss/vite` 或
|
|
55
|
+
`@tailwindcss/postcss`。裸 `tailwindcss` 包只代表样式运行时/配置来源,
|
|
56
|
+
不能被当成 Vite 或 PostCSS 插件工厂。
|
|
57
|
+
|
|
58
|
+
## 场景边界
|
|
59
|
+
|
|
60
|
+
- `getBaseConfig`:只提供路径别名和 addon 合并能力,不改变运行时代码语义。
|
|
61
|
+
- `createAppConfig`:面向 Web App,本身不注入业务语义默认值,应用层策略由调用方通过 `viteConfig` 覆盖。
|
|
62
|
+
- `createLibConfig`:面向库构建,默认 external 掉依赖包和依赖子路径,避免打包业务依赖;库入口可通过顶层 `entry` 覆盖,默认值仍为 `src/index.ts`。
|
|
63
|
+
- `pwa`:只提供中性的注册策略默认值,不内置应用名、图标、静态资源路径等业务语义配置。
|
|
64
|
+
- `viteSsg`:`vite-ssg` 本身即可启用 SSG 基础配置;`vite-ssg-sitemap` 仅作为存在时追加的增强能力,不应反向阻塞 SSG。
|
|
65
|
+
|
|
66
|
+
## 失败语义
|
|
67
|
+
|
|
68
|
+
- 找不到目标 root 的 `package.json` 时直接抛错。
|
|
69
|
+
- addon 被启用但缺少必需包时直接抛错,并报告缺失包名和检查路径。
|
|
70
|
+
- 动态导入失败时保留原始 `cause`,并补充 addon 名称、specifier 和 root。
|
package/README.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# ViteConfig 最佳实践
|
|
2
|
+
|
|
3
|
+
设计契约见 [DESIGN.md](./DESIGN.md)。该包定位为 opinionated Vite preset:
|
|
4
|
+
通过依赖图推断高确定性的插件配置,但保留显式关闭、显式覆盖和严格失败语义。
|
|
5
|
+
|
|
6
|
+
## API
|
|
7
|
+
|
|
8
|
+
- `createAppConfig()`:生成应用项目的 Vite 配置。
|
|
9
|
+
- `createLibConfig()`:生成库项目的 Vite 配置,并默认 external 化运行时依赖与 peer 依赖。
|
|
10
|
+
- `getBaseConfig()`:只解析基础别名与自动装配的 addon 配置。
|
|
11
|
+
- `inspectViteFeatures()`:只做 feature 决策分析,不加载任何插件模块。
|
|
12
|
+
|
|
13
|
+
## 依赖检测约定
|
|
14
|
+
|
|
15
|
+
- 自动启用依据目标项目 `package.json` 中真实声明的 addon 依赖图。
|
|
16
|
+
- `dependencies`、`devDependencies`、`peerDependencies` 与 `optionalDependencies` 都可以触发 addon 自动启用。
|
|
17
|
+
- Vite 插件、测试框架和构建工具通常属于 build-time addon,放在 `devDependencies` 也必须能被识别。
|
|
18
|
+
- 显式传入 `true` 或对象配置时,仍会严格校验对应 addon 依赖;缺失时直接失败,不做回退。
|
|
19
|
+
|
|
20
|
+
## Typings 输出约定
|
|
21
|
+
|
|
22
|
+
- `auto-import`、`components`、`vue-router` 的默认 `dts` 输出路径都会基于 `viteConfig.root` 解析到 `src/typings/` 目录。
|
|
23
|
+
- 调用方未显式覆盖时,不依赖当前 shell 的工作目录。
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
- `createLibConfig()` 默认把 `dependencies`、`optionalDependencies` 与 `peerDependencies` external 化。
|
|
27
|
+
- `devDependencies` 不会自动 external,避免把仅用于开发或测试的包错误带入发布契约。
|
|
28
|
+
- `createLibConfig({ entry })` 可直接声明库入口;相对路径会基于 `viteConfig.root` 解析,默认仍为 `src/index.ts`。
|
|
29
|
+
|
|
30
|
+
## typed addon options
|
|
31
|
+
|
|
32
|
+
`ViteConfigOptions` 的每个 addon 字段都绑定对应插件的真实配置类型;直接在
|
|
33
|
+
`createAppConfig` 里写配置,也能获得和依赖版本一致的参数提示。所有 addon helper/type
|
|
34
|
+
都从唯一入口导出,常规使用直接从 `@moluoxixi/vite-config` 导入:
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
import { createAppConfig, defineVueAddonOptions } from '@moluoxixi/vite-config'
|
|
38
|
+
|
|
39
|
+
export default createAppConfig({
|
|
40
|
+
vue: defineVueAddonOptions({
|
|
41
|
+
features: {
|
|
42
|
+
propsDestructure: true,
|
|
43
|
+
},
|
|
44
|
+
}),
|
|
45
|
+
})
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
当前提供 `addons/vue`、`addons/react`、`addons/auto-import`、`addons/components`、
|
|
49
|
+
`addons/vue-router`、`addons/markdown`、`addons/i18n`、`addons/devtools`、
|
|
50
|
+
`addons/layouts`、`addons/pwa`、`addons/tailwindcss`、`addons/unocss` 与
|
|
51
|
+
`addons/vite-ssg`。这些子入口继续保留给需要按 addon 拆分导入的场景;也可以从
|
|
52
|
+
`@moluoxixi/vite-config/addons` 一次性导入所有 addon helper/type。
|
|
53
|
+
|
|
54
|
+
主入口和 `addons/pwa` 的 PWA 类型都来自 `vite-plugin-pwa` 官方导出。本仓库只把它作为
|
|
55
|
+
devDependency 用于开发期类型检查和声明文件构建;发布包不会把 devDependency 安装到
|
|
56
|
+
消费者项目里。运行时仍由 PWA addon 动态加载该插件,如果项目没有安装对应 addon 依赖,
|
|
57
|
+
TypeScript 解析或运行时启用都会直接暴露失败,不提供宽类型回退。
|
|
58
|
+
Tailwind CSS 只会在安装 `@tailwindcss/vite` 或 `@tailwindcss/postcss` 时自动接入;
|
|
59
|
+
仅安装裸 `tailwindcss` 包不会被当成 Vite/PostCSS 插件入口。
|
|
60
|
+
|
|
61
|
+
## 1. 自动化的依赖侦测(Read Package)
|
|
62
|
+
- **实践方法**:放弃手动配置每个特性开关,利用读取并解析当前工作目录的 `package.json`,自动侦测项目中是否使用 `vue`、`react`、`@tailwindcss/vite`、`@tailwindcss/postcss`、`unocss` 等常用前端技术栈。
|
|
63
|
+
- **优势**:减少模板化项目初始化的心智负担,开发者一旦安装对应依赖该功能自动就绪。
|
|
64
|
+
|
|
65
|
+
## 2. 动态按需加载配置模块
|
|
66
|
+
- **实践方法**:根据上一步依赖检测的结果,利用动态 `import()` 加载相关的 Vite 插件。如果不包含某个依赖,则完全不要去进行该环境配置的解析和插件实例化。
|
|
67
|
+
- **优势**:大幅提升 Vite Server 的启动速度,并防止未安装依赖抛出不必要的错误。
|
|
68
|
+
|
|
69
|
+
## 3. 模块化与配置合并(Merge Config)
|
|
70
|
+
- **实践方法**:不要编写一个庞大的、成百上千行的单文件 `vite.config.ts`。应把基础配置(如别名、打包产出、服务器端口等)提取出来,与各个插件模块生成的配置独立化。最后利用 Vite 提供的 `mergeConfig` API 将最终侦测启用的多个配置块安全合并。
|
|
71
|
+
- **优势**:保证了底层能力的可维护与高内聚,使得这个公共能力包可以横跨多个不同技术栈的子项目无缝使用。
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Options } from 'unplugin-auto-import/types';
|
|
2
|
+
|
|
3
|
+
type AutoImportAddonOptions = Options;
|
|
4
|
+
/**
|
|
5
|
+
* 让 auto-import 配置获得插件原生类型提示,调用时仍只返回普通配置对象。
|
|
6
|
+
*/
|
|
7
|
+
declare function defineAutoImportAddonOptions(options: AutoImportAddonOptions): AutoImportAddonOptions;
|
|
8
|
+
|
|
9
|
+
export { type AutoImportAddonOptions, defineAutoImportAddonOptions };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Options } from 'unplugin-vue-components/types';
|
|
2
|
+
|
|
3
|
+
type ComponentsAddonOptions = Options;
|
|
4
|
+
/**
|
|
5
|
+
* 让 components 配置获得插件原生类型提示,避免调用方只能翻源码确认参数。
|
|
6
|
+
*/
|
|
7
|
+
declare function defineComponentsAddonOptions(options: ComponentsAddonOptions): ComponentsAddonOptions;
|
|
8
|
+
|
|
9
|
+
export { type ComponentsAddonOptions, defineComponentsAddonOptions };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { VitePluginVueDevToolsOptions } from 'vite-plugin-vue-devtools';
|
|
2
|
+
|
|
3
|
+
type DevtoolsAddonOptions = VitePluginVueDevToolsOptions;
|
|
4
|
+
/**
|
|
5
|
+
* 让 Vue DevTools 配置获得插件原生类型提示。
|
|
6
|
+
*/
|
|
7
|
+
declare function defineDevtoolsAddonOptions(options: DevtoolsAddonOptions): DevtoolsAddonOptions;
|
|
8
|
+
|
|
9
|
+
export { type DevtoolsAddonOptions, defineDevtoolsAddonOptions };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PluginOptions } from '@intlify/unplugin-vue-i18n';
|
|
2
|
+
|
|
3
|
+
type I18nAddonOptions = PluginOptions;
|
|
4
|
+
/**
|
|
5
|
+
* 让 vue-i18n unplugin 配置获得插件原生类型提示。
|
|
6
|
+
*/
|
|
7
|
+
declare function defineI18nAddonOptions(options: I18nAddonOptions): I18nAddonOptions;
|
|
8
|
+
|
|
9
|
+
export { type I18nAddonOptions, defineI18nAddonOptions };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export { AutoImportAddonOptions, defineAutoImportAddonOptions } from './auto-import.js';
|
|
2
|
+
export { ComponentsAddonOptions, defineComponentsAddonOptions } from './components.js';
|
|
3
|
+
export { DevtoolsAddonOptions, defineDevtoolsAddonOptions } from './devtools.js';
|
|
4
|
+
export { I18nAddonOptions, defineI18nAddonOptions } from './i18n.js';
|
|
5
|
+
export { VueLayoutsAddonOptions, defineVueLayoutsAddonOptions } from './layouts.js';
|
|
6
|
+
export { MarkdownAddonOptions, defineMarkdownAddonOptions } from './markdown.js';
|
|
7
|
+
export { PwaAddonOptions, definePwaAddonOptions } from './pwa.js';
|
|
8
|
+
export { ReactAddonOptions, defineReactAddonOptions } from './react.js';
|
|
9
|
+
export { TailwindCssAddonOptions, defineTailwindCssAddonOptions } from './tailwindcss.js';
|
|
10
|
+
export { UnoCssAddonOptions, defineUnoCssAddonOptions } from './unocss.js';
|
|
11
|
+
export { ViteSsgAddonOptions, defineViteSsgAddonOptions } from './vite-ssg.js';
|
|
12
|
+
export { VitestAddonOptions, defineVitestAddonOptions } from './vitest.js';
|
|
13
|
+
export { VueAddonOptions, defineVueAddonOptions } from './vue.js';
|
|
14
|
+
export { VueRouterAddonOptions, defineVueRouterAddonOptions } from './vue-router.js';
|
|
15
|
+
import 'unplugin-auto-import/types';
|
|
16
|
+
import 'unplugin-vue-components/types';
|
|
17
|
+
import 'vite-plugin-vue-devtools';
|
|
18
|
+
import '@intlify/unplugin-vue-i18n';
|
|
19
|
+
import 'vite-plugin-vue-layouts';
|
|
20
|
+
import 'unplugin-vue-markdown/types';
|
|
21
|
+
import 'vite-plugin-pwa';
|
|
22
|
+
import '@vitejs/plugin-react';
|
|
23
|
+
import '@tailwindcss/vite';
|
|
24
|
+
import 'unocss/vite';
|
|
25
|
+
import 'vite';
|
|
26
|
+
import 'vitest';
|
|
27
|
+
import '@vitejs/plugin-vue';
|
|
28
|
+
import 'unplugin-vue-router/types';
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import "../chunk-T5FUYGUC.js";
|
|
2
|
+
import {
|
|
3
|
+
definePwaAddonOptions
|
|
4
|
+
} from "../chunk-2BMF52EY.js";
|
|
5
|
+
import {
|
|
6
|
+
defineReactAddonOptions
|
|
7
|
+
} from "../chunk-PBJLIQ2R.js";
|
|
8
|
+
import {
|
|
9
|
+
defineTailwindCssAddonOptions
|
|
10
|
+
} from "../chunk-HKGBYIAA.js";
|
|
11
|
+
import {
|
|
12
|
+
defineUnoCssAddonOptions
|
|
13
|
+
} from "../chunk-7CLRGPQQ.js";
|
|
14
|
+
import {
|
|
15
|
+
defineViteSsgAddonOptions
|
|
16
|
+
} from "../chunk-YMSTBWUP.js";
|
|
17
|
+
import {
|
|
18
|
+
defineVitestAddonOptions
|
|
19
|
+
} from "../chunk-UXLJ2PKX.js";
|
|
20
|
+
import {
|
|
21
|
+
defineVueRouterAddonOptions
|
|
22
|
+
} from "../chunk-WYQMKXD6.js";
|
|
23
|
+
import {
|
|
24
|
+
defineVueAddonOptions
|
|
25
|
+
} from "../chunk-M2ZFVZSN.js";
|
|
26
|
+
import {
|
|
27
|
+
defineAutoImportAddonOptions
|
|
28
|
+
} from "../chunk-GUIZM2YS.js";
|
|
29
|
+
import {
|
|
30
|
+
defineComponentsAddonOptions
|
|
31
|
+
} from "../chunk-NQPL76JU.js";
|
|
32
|
+
import {
|
|
33
|
+
defineDevtoolsAddonOptions
|
|
34
|
+
} from "../chunk-OEBLHHRC.js";
|
|
35
|
+
import {
|
|
36
|
+
defineI18nAddonOptions
|
|
37
|
+
} from "../chunk-IBJFH5NC.js";
|
|
38
|
+
import {
|
|
39
|
+
defineVueLayoutsAddonOptions
|
|
40
|
+
} from "../chunk-GKIEBF73.js";
|
|
41
|
+
import {
|
|
42
|
+
defineMarkdownAddonOptions
|
|
43
|
+
} from "../chunk-CG74BJ6T.js";
|
|
44
|
+
export {
|
|
45
|
+
defineAutoImportAddonOptions,
|
|
46
|
+
defineComponentsAddonOptions,
|
|
47
|
+
defineDevtoolsAddonOptions,
|
|
48
|
+
defineI18nAddonOptions,
|
|
49
|
+
defineMarkdownAddonOptions,
|
|
50
|
+
definePwaAddonOptions,
|
|
51
|
+
defineReactAddonOptions,
|
|
52
|
+
defineTailwindCssAddonOptions,
|
|
53
|
+
defineUnoCssAddonOptions,
|
|
54
|
+
defineViteSsgAddonOptions,
|
|
55
|
+
defineVitestAddonOptions,
|
|
56
|
+
defineVueAddonOptions,
|
|
57
|
+
defineVueLayoutsAddonOptions,
|
|
58
|
+
defineVueRouterAddonOptions
|
|
59
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { UserOptions } from 'vite-plugin-vue-layouts';
|
|
2
|
+
|
|
3
|
+
type VueLayoutsAddonOptions = UserOptions;
|
|
4
|
+
/**
|
|
5
|
+
* 让 vue-layouts 配置获得插件原生类型提示。
|
|
6
|
+
*/
|
|
7
|
+
declare function defineVueLayoutsAddonOptions(options: VueLayoutsAddonOptions): VueLayoutsAddonOptions;
|
|
8
|
+
|
|
9
|
+
export { type VueLayoutsAddonOptions, defineVueLayoutsAddonOptions };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Options } from 'unplugin-vue-markdown/types';
|
|
2
|
+
|
|
3
|
+
type MarkdownAddonOptions = Options;
|
|
4
|
+
/**
|
|
5
|
+
* 让 Markdown addon 配置获得插件原生类型提示。
|
|
6
|
+
*/
|
|
7
|
+
declare function defineMarkdownAddonOptions(options: MarkdownAddonOptions): MarkdownAddonOptions;
|
|
8
|
+
|
|
9
|
+
export { type MarkdownAddonOptions, defineMarkdownAddonOptions };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { VitePWA } from 'vite-plugin-pwa';
|
|
2
|
+
|
|
3
|
+
type PwaAddonOptions = NonNullable<Parameters<typeof VitePWA>[0]>;
|
|
4
|
+
/**
|
|
5
|
+
* 让 PWA addon 配置直接获得 vite-plugin-pwa 官方类型提示。
|
|
6
|
+
*/
|
|
7
|
+
declare function definePwaAddonOptions<const T extends PwaAddonOptions>(options: T): T;
|
|
8
|
+
|
|
9
|
+
export { type PwaAddonOptions, definePwaAddonOptions };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Options } from '@vitejs/plugin-react';
|
|
2
|
+
|
|
3
|
+
type ReactAddonOptions = Options;
|
|
4
|
+
/**
|
|
5
|
+
* 让 React addon 配置获得 @vitejs/plugin-react 原生类型提示。
|
|
6
|
+
*/
|
|
7
|
+
declare function defineReactAddonOptions(options: ReactAddonOptions): ReactAddonOptions;
|
|
8
|
+
|
|
9
|
+
export { type ReactAddonOptions, defineReactAddonOptions };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PluginOptions } from '@tailwindcss/vite';
|
|
2
|
+
|
|
3
|
+
type TailwindCssAddonOptions = PluginOptions;
|
|
4
|
+
/**
|
|
5
|
+
* 让 Tailwind CSS Vite 插件配置获得原生类型提示。
|
|
6
|
+
*/
|
|
7
|
+
declare function defineTailwindCssAddonOptions(options: TailwindCssAddonOptions): TailwindCssAddonOptions;
|
|
8
|
+
|
|
9
|
+
export { type TailwindCssAddonOptions, defineTailwindCssAddonOptions };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { VitePluginConfig } from 'unocss/vite';
|
|
2
|
+
|
|
3
|
+
type UnoCssAddonOptions<Theme extends object = object> = VitePluginConfig<Theme> | string;
|
|
4
|
+
/**
|
|
5
|
+
* 让 UnoCSS 配置获得 Vite 插件原生类型提示。
|
|
6
|
+
*/
|
|
7
|
+
declare function defineUnoCssAddonOptions<Theme extends object = object>(options: UnoCssAddonOptions<Theme>): UnoCssAddonOptions<Theme>;
|
|
8
|
+
|
|
9
|
+
export { type UnoCssAddonOptions, defineUnoCssAddonOptions };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { UserConfig } from 'vite';
|
|
2
|
+
|
|
3
|
+
type ViteSsgAddonOptions = UserConfig & {
|
|
4
|
+
ssgOptions?: {
|
|
5
|
+
beastiesOptions?: {
|
|
6
|
+
reduceInlineStyles?: boolean;
|
|
7
|
+
};
|
|
8
|
+
formatting?: string;
|
|
9
|
+
onFinished?: () => void | Promise<void>;
|
|
10
|
+
script?: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* 让 vite-ssg 配置获得本 preset 支持的 SSG 配置类型提示。
|
|
15
|
+
*/
|
|
16
|
+
declare function defineViteSsgAddonOptions(options: ViteSsgAddonOptions): ViteSsgAddonOptions;
|
|
17
|
+
|
|
18
|
+
export { type ViteSsgAddonOptions, defineViteSsgAddonOptions };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InlineConfig } from 'vitest';
|
|
2
|
+
|
|
3
|
+
type VitestAddonOptions = InlineConfig;
|
|
4
|
+
/**
|
|
5
|
+
* 让 Vitest 配置获得 Vitest 原生类型提示。
|
|
6
|
+
*/
|
|
7
|
+
declare function defineVitestAddonOptions(options: VitestAddonOptions): VitestAddonOptions;
|
|
8
|
+
|
|
9
|
+
export { type VitestAddonOptions, defineVitestAddonOptions };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Options } from 'unplugin-vue-router/types';
|
|
2
|
+
|
|
3
|
+
type VueRouterAddonOptions = Options;
|
|
4
|
+
/**
|
|
5
|
+
* 让 vue-router 文件路由插件配置获得原生类型提示。
|
|
6
|
+
*/
|
|
7
|
+
declare function defineVueRouterAddonOptions(options: VueRouterAddonOptions): VueRouterAddonOptions;
|
|
8
|
+
|
|
9
|
+
export { type VueRouterAddonOptions, defineVueRouterAddonOptions };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Options } from '@vitejs/plugin-vue';
|
|
2
|
+
|
|
3
|
+
type VueAddonOptions = Options;
|
|
4
|
+
/**
|
|
5
|
+
* 让 Vue addon 配置获得 @vitejs/plugin-vue 原生类型提示。
|
|
6
|
+
*/
|
|
7
|
+
declare function defineVueAddonOptions(options: VueAddonOptions): VueAddonOptions;
|
|
8
|
+
|
|
9
|
+
export { type VueAddonOptions, defineVueAddonOptions };
|
|
File without changes
|