首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nuxtjs + Vuetify + Purgecss

Nuxtjs + Vuetify + Purgecss
EN

Stack Overflow用户
提问于 2021-06-02 06:57:16
回答 1查看 513关注 0票数 2

看到Vuetify在使用图标时添加了大约300-340kb的图标:'mdi‘和nuxt@vuetify module,我已经找到了答案,表明purgeCSS是一个很好的解决方案,可以去除不必要和不使用的图标。

我最初从'mdi/font‘手动导入图标,但很快意识到这是一个非常无效的解决方案,因为它迫使我不断地想出手动将图标添加到组件的解决方案。

我似乎不能让purgecss删除图标(这对我来说是最重要的)。

安装了"@nuxtjs/vuetify":"^1.11.3",安装了"nuxt-purgecss":"^1.0.0",安装了"@mdi/font":"^5.9.55",

看着这个答案,我试着创建我的设置,他们也在这里讨论它:https://github.com/vuetifyjs/vuetify/issues/7265

代码语言:javascript
复制
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']
      }
    ]
  },

然而,这个请求仍然是以原始大小提出的,有什么想法吗?我在这里做错了什么?字体显然是从本地提取的,而不是CDN。

EN

回答 1

Stack Overflow用户

发布于 2021-08-30 14:56:59

除了使用PurgeCss之外,您是否尝试过使用@ mdi /js而不是mdi图标?

这篇文章来自dev.materialdesignicons.com指南:

由于性能和总体请求大小的原因,非常不鼓励使用易于使用的webfont的

因此您可以切换到@mdi/js pachage:https://www.npmjs.com/package/@mdi/js,然后在nuxt.config.js中指定用法

代码语言:javascript
复制
    icons: {
       iconfont: 'mdiSvg',
    }

现在,您已经节省了大量的捆绑包大小。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67796971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档