vuetifyjs:仅添加使用过的图标来构建
vuetifyjs: Adding only used icons to build
我目前正在使用默认 "Material Design Icons" 构建一个 vuetifyjs-app。在生产版本中,我只使用了 2 个这种字体的图标(由 vuetify-component 芯片使用)。
根据建议,我包含了完整的 iconfont
<link href="https://cdn.jsdelivr.net/npm/@mdi/font@3.x/css/materialdesignicons.min.css" rel="stylesheet">
但是生产构建迫使用户只为 2 个图标下载将近 0.5MB 的数据。
有什么办法可以:
- 在 CDN 请求中只包含需要的图标
或
- 使用 Tree-Shaking 只包含主 CSS 文件中需要的图标? (我正在使用 parcel.js 生成器)
我们建议尽可能使用 @mdi/js。这提供了一个 ES 模块,它导出图标集中每个图标的 SVG 路径并支持 treeshaking。您只需将图标字符串传递给 SVG 路径元素,或者在这种情况下,如果您在 Vuetify 配置中指定图标字体,则可以将其直接传递给 v-icon
:iconfont: 'mdiSvg'
.
安装
npm install @mdi/js
用法
<template>
<v-icon>{{ mdiCheck }}</v-icon>
</template>
<script>
import { mdiCheck } from '@mdi/js'
export default {
data: () => ({
mdiCheck,
}),
}
</script>
您可以在此处阅读有关与 Vuetify 集成的更多信息:https://vuetifyjs.com/en/customization/icons#install-material-design-icons-js-svg
我目前正在使用默认 "Material Design Icons" 构建一个 vuetifyjs-app。在生产版本中,我只使用了 2 个这种字体的图标(由 vuetify-component 芯片使用)。
根据建议,我包含了完整的 iconfont
<link href="https://cdn.jsdelivr.net/npm/@mdi/font@3.x/css/materialdesignicons.min.css" rel="stylesheet">
但是生产构建迫使用户只为 2 个图标下载将近 0.5MB 的数据。 有什么办法可以:
- 在 CDN 请求中只包含需要的图标 或
- 使用 Tree-Shaking 只包含主 CSS 文件中需要的图标? (我正在使用 parcel.js 生成器)
我们建议尽可能使用 @mdi/js。这提供了一个 ES 模块,它导出图标集中每个图标的 SVG 路径并支持 treeshaking。您只需将图标字符串传递给 SVG 路径元素,或者在这种情况下,如果您在 Vuetify 配置中指定图标字体,则可以将其直接传递给 v-icon
:iconfont: 'mdiSvg'
.
安装
npm install @mdi/js
用法
<template>
<v-icon>{{ mdiCheck }}</v-icon>
</template>
<script>
import { mdiCheck } from '@mdi/js'
export default {
data: () => ({
mdiCheck,
}),
}
</script>
您可以在此处阅读有关与 Vuetify 集成的更多信息:https://vuetifyjs.com/en/customization/icons#install-material-design-icons-js-svg