From 272b921168315c77cc6426bf2fd2c4e9c2c57fb0 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Fri, 13 Sep 2024 00:07:27 +0800 Subject: [PATCH] feat(theme): add support `` --- .../src/client/features/components/Swiper.vue | 206 ++++++++++++++++++ theme/src/client/shim.d.ts | 10 + .../src/node/config/extendsBundlerOptions.ts | 8 +- 3 files changed, 223 insertions(+), 1 deletion(-) create mode 100644 theme/src/client/features/components/Swiper.vue diff --git a/theme/src/client/features/components/Swiper.vue b/theme/src/client/features/components/Swiper.vue new file mode 100644 index 00000000..1ab8d85b --- /dev/null +++ b/theme/src/client/features/components/Swiper.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/theme/src/client/shim.d.ts b/theme/src/client/shim.d.ts index e456184f..0d984747 100644 --- a/theme/src/client/shim.d.ts +++ b/theme/src/client/shim.d.ts @@ -65,3 +65,13 @@ declare module '@internal/iconify' { icons, } } + +declare module 'swiper/css' { + const res: any + export default res +} + +declare module 'swiper/css/*' { + const res: any + export default res +} diff --git a/theme/src/node/config/extendsBundlerOptions.ts b/theme/src/node/config/extendsBundlerOptions.ts index bd76b1a1..1d61fbff 100644 --- a/theme/src/node/config/extendsBundlerOptions.ts +++ b/theme/src/node/config/extendsBundlerOptions.ts @@ -5,12 +5,13 @@ import { addViteSsrNoExternal, chainWebpack, } from '@vuepress/helper' +import { isPackageExists } from 'local-pkg' import type { App } from 'vuepress' export function extendsBundlerOptions(bundlerOptions: any, app: App): void { addViteConfig(bundlerOptions, app, { build: { - chunkSizeWarningLimit: 1024, + chunkSizeWarningLimit: 2048, }, }) @@ -23,6 +24,11 @@ export function extendsBundlerOptions(bundlerOptions: any, app: App): void { '@vuepress/plugin-watermark', ]) + if (isPackageExists('swiper')) { + addViteOptimizeDepsInclude(bundlerOptions, app, 'swiper', true) + addViteSsrNoExternal(bundlerOptions, app, ['swiper']) + } + chainWebpack(bundlerOptions, app, (config) => { config.module .rule('scss')