Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

748
Views
How can I make Volar aware of globally available components in Vue 3?

So I'm working on a brand new project with Vue 3 and Volar as the extension in VSCode. And I'm using a component library, CoreUI. So in my main.ts I now have this code.

import { createApp } from 'vue'
import App from './App.vue'
import CoreuiVue from '@coreui/vue'

const app = createApp(App);
app.use(CoreuiVue);

Which now means that in any other SFC I can just use any CoreUI component, like for example <CAlert color="primary">A simple alert!</CAlert>, without needing to import it.

And it compiles just fine. During compiling I get no complaints from TypeScript or ESLint about not having properly imported a component. So it seems like those tools are aware that these components are now globally available.

However, Volar is not and depicts that CAlert like this:

CAlert not recognized as the component it is

In other words, it doesn't recognize CAlert and can't give me any intellisense on it, like what it's properties and property-types are.

How can I make Volar understand that all CoreUI's components are just globally available?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Global components should be declared in src/components.d.ts:

import { CAlert } from '@coreui/vue'

declare module '@vue/runtime-core' {
  export interface GlobalComponents {
    CAlert: typeof CAlert
  }
}

screenshot

Every used component from Core UI must be explicitly declared (there's currently no way to declare all components in one line for type augmentation), but you could generate the typings for all Core global components with a Node script:

const coreui = require('@coreui/vue')
const components = Object.keys(coreui).filter(key => key.startsWith('C') && !key.endsWith('Plugin'))
const code = `import * as CoreUI from '@coreui/vue'

declare module '@vue/runtime-core' {
  export interface GlobalComponents {
    ${components.map(component => `${component}: typeof CoreUI['${component}']`).join('\n    ')}
  }
}
`
console.log(code)

...or copy the output from this demo.

Also, you'll need to restart Volar's Vue language server from the command palette (or the IDE itself) for Volar to reload the typings. Press ⌘+P on macOS (or ⊞ Win+P on Windows), and type >Restart Vue Server:

VS Code command palette

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!