Maison  >  Questions et réponses  >  le corps du texte

Ajouter Vuetify à Astro : un guide étape par étape

J'ai du mal à ajouter Vuetify 3 à Astro en utilisant l'intégration Vue. Voici ce que j'ai jusqu'à présent :

import { defineConfig } from 'astro/config';

import vue from '@astrojs/vue';

import vuetify from 'vite-plugin-vuetify';

// https://astro.build/config
export default defineConfig({
  integrations: [vue()],
  vite: {
    ssr: {
      noExternal: ['vuetify'],
    },
    plugins: [vuetify()],
  },
});

Je reçois 'Vuetify 插件必须在 vue 插件之后加载' erreur. Je ne sais pas comment passer à autre chose à partir d'ici. Je suis ouvert à toutes suggestions.

P粉676821490P粉676821490305 Il y a quelques jours579

répondre à tous(1)je répondrai

  • P粉964682904

    P粉9646829042023-12-20 00:45:06

    Configuration dans Astro Integration ( @astrojs/vue 在本例中)被附加到您自己的 Astro 配置中,因此 vuetify Le plugin sera enregistré ici en premier.

    La solution consiste à définir votre propre Intégration Astro, en appelant < a href="https://docs.astro.build/en/reference/integrations-reference/#updateconfig-option" rel="nofollow noreferrer">updateConfig() Ajouter une validation :

    // astro.config.mjs
    import vuetifyPlugin from 'vite-plugin-vuetify';
    
    /**
     * Vuetify integration for Astro
     * @param {import('astro/config').Options} options
     * @returns {import('astro/config').AstroIntegration}
     */
    function vuetify(options) {
      return {
        name: 'my-astro-vuetify-integration',
        hooks: {
          'astro:config:setup': ({ updateConfig }) => {
            updateConfig({
              vite: {
                ssr: {
                  noExternal: ['vuetify'],
                },
                plugins: [vuetifyPlugin()],
              },
            });
          },
        },
      }
    }
    

    Et installez-le après l'intégration de Vue  :

    // astro.config.mjs
    export default defineConfig({
      integrations: [
        vue(),
        vuetify(),
      ],
    })
    

    répondre
    0
  • Annulerrépondre