74 lines
1.9 KiB
TypeScript
74 lines
1.9 KiB
TypeScript
import {
|
|
addViteConfig,
|
|
addViteOptimizeDepsExclude,
|
|
addViteOptimizeDepsInclude,
|
|
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: 2048,
|
|
},
|
|
})
|
|
|
|
addViteOptimizeDepsInclude(bundlerOptions, app, '@vueuse/core', true)
|
|
addViteOptimizeDepsExclude(bundlerOptions, app, '@theme')
|
|
|
|
addViteSsrNoExternal(bundlerOptions, app, [
|
|
'@vuepress/helper',
|
|
'@vuepress/plugin-reading-time',
|
|
'@vuepress/plugin-watermark',
|
|
])
|
|
|
|
if (isPackageExists('swiper')) {
|
|
addViteOptimizeDepsInclude(bundlerOptions, app, ['swiper/modules', 'swiper/vue'], true)
|
|
addViteSsrNoExternal(bundlerOptions, app, ['swiper'])
|
|
}
|
|
|
|
chainWebpack(bundlerOptions, app, (config) => {
|
|
config.module
|
|
.rule('scss')
|
|
.use('sass-loader')
|
|
.tap((options: any) => ({
|
|
api: 'modern-compiler',
|
|
...options,
|
|
sassOptions: {
|
|
silenceDeprecations: ['mixed-decls'],
|
|
...options.sassOptions,
|
|
},
|
|
}))
|
|
})
|
|
|
|
addViteConfig(bundlerOptions, app, {
|
|
css: {
|
|
preprocessorOptions: {
|
|
sass: {
|
|
logger: {
|
|
warn: (message, { deprecation, deprecationType }) => {
|
|
if (deprecation && deprecationType.id === 'mixed-decls')
|
|
return
|
|
|
|
console.warn(message)
|
|
},
|
|
},
|
|
},
|
|
scss: {
|
|
logger: {
|
|
warn: (message, { deprecation, deprecationType }) => {
|
|
if (deprecation && deprecationType.id === 'mixed-decls')
|
|
return
|
|
if (!message.includes('repetitive deprecation warnings omitted')) {
|
|
console.warn(message)
|
|
}
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
})
|
|
}
|