如何将 Vuetify 添加到 astro?

Ces*_*uez 6 vue.js vuetify.js vuejs3 astrojs

使用 Vue 集成时,我在将 Vuetify 3 添加到 Astro 时遇到问题。这是我到目前为止所拥有的:

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()],
  },
});
Run Code Online (Sandbox Code Playgroud)

我收到'Vuetify plugin must be loaded after the vue plugin'错误了。不知道如何从这里继续前进。我愿意接受所有建议。

ton*_*y19 2

Astro 集成中的配置(@astrojs/vue在本例中)将附加到您自己的 Astro 配置中,因此vuetify插件将首先在此处注册。

解决方法是定义您自己的Astro 集成,调用updateConfig()添加 Vuetify:

// 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()],
          },
        });
      },
    },
  }
}
Run Code Online (Sandbox Code Playgroud)

并在Vue集成安装它:

// astro.config.mjs
export default defineConfig({
  integrations: [
    vue(),
    vuetify(),
  ],
})
Run Code Online (Sandbox Code Playgroud)