看到 Vuetify 在使用带有 nuxt@vuetify-module 的图标:'mdi' 时添加了大约 300-340kb 的图标,我发现答案表明 purgeCSS 是去除不必要和未使用图标的好方法。
我最初从“mdi/font”手动导入图标,但很快意识到这是一个非常无效的解决方案,因为它迫使我不断想出手动将图标添加到组件的解决方案。
我似乎无法让 purgecss 删除图标(这对我来说是最重要的)。
我安装了“@nuxtjs/vuetify”:“^1.11.3”,我安装了“nuxt-purgecss”:“^1.0.0”,我安装了“@mdi/font”:“^5.9.55”,
看着这个答案,我试图创建我的设置 为什么我在视图源中看到 vuetify css? 他们还在这里讨论: https ://github.com/vuetifyjs/vuetify/issues/7265
vuetify: {
customVariables: ['~/assets/variables.scss'],
treeShake: true,
defaultAssets: {
font: {
family: 'Ubuntu',
},
icons: {
iconfont: 'mdi',
},
},
theme: {
dark: false,
themes: {
light: {
primary: '#fec655',
primarytext: '#23263e',
},
}
}
},
purgeCSS: {
enabled: true,
paths: [
'components/**/*.vue',
'layouts/**/*.vue',
'pages/**/*.vue',
'plugins/**/*.js',
'./node_modules/vuetify/dist/*.js',
'./node_modules/vuetify/dist/*.css',
'./node_modules/vuetify/src/**/*.ts',
'./node_modules/@mdi/fonts/*',
],
styleExtensions: ['.css'],
// whitelist: ['body', 'html', 'nuxt-progress', ''],
whitelist: ['v-application', 'v-application--wrap','layout','row','col'],
whitelistPatterns: [
/^v-((?!application).)*$/,
/^theme--*/,
/.*-transition/,
/^justify-*/,
/^p*-[0-9]/,
/^m*-[0-9]/,
/^text--*/,
/--text$/,
/^row-*/,
/^col-*/,
/leaflet/,
/marker/
],
whitelistPatternsChildren: [/^v-((?!application).)*$/, /^theme--*/],
extractors: [
{
extractor: content => content.match(/[A-z0-9-:\\/]+/g) || [],
extensions: ['html', 'vue', 'js']
}
]
},