Executando verificação de segurança...
1

headlessui/vue + nuxt 3 (tailwind) - Error provide() can only be used inside setup()

headlessui/vue error

Olá Dev’s, estou usando o nuxt 3 + tailwind e usei o headlessui para usar alguns componentes e me deparei com o seguinte erro ao compilar.

Error provide() can only be used inside setup()
Error inject() can only be used inside setup() or functional components

erro

{
  "private": true,
  "scripts": {
    "build": "nuxt build",
    "dev": "nuxt dev",
    "generate": "nuxt generate",
    "preview": "nuxt preview",
    "postinstall": "nuxt prepare"
  },
  "devDependencies": {
    "@nuxtjs/eslint-config": "^12.0.0",
    "@nuxtjs/google-fonts": "^3.0.0-1",
    "@nuxtjs/tailwindcss": "^6.1.3",
    "eslint": "^8.26.0",
    "nuxt": "3.0.0",
    "sass": "^1.56.1",
    "vue-eslint-parser": "^9.1.0"
  },
  "dependencies": {
    "@headlessui/vue": "^1.7.4"
  }
}

Esse erro acontece porque o headlessui não foi mimificado pelo nuxt e então não consegue ver as instruções do modulo:

Para resolver isso basta ir no arquivo do nuxt.config.js / ts e adicionar a seguinte configuração:

export default defineNuxtConfig({
  build: {
    transpile: ['@headlessui/vue']
  }
...
}

Isso fará que o nuxt transpile o headlessui e consiga usar os imports de provide() e inject()!

Carregando publicação patrocinada...