typescript - Prístup k aktuálnemu názvu modulu v existujúcej aplikácii vue3/vite


Vo svojej aplikácii vue3/vite/typescript používam import.meta.url a získavam názov súboru, aby som získal názov aktuálneho modulu:

Súbor 'myModule.ts':

export default {
  url: import.meta.url
}

Súbor 'test.ts':

import myModule from "./myModule"

console.log(myModule.url)

Toto funguje skvele, pokiaľ spustím vývojový server (ktorý vlastne importuje moduly), ale zlyháva, ak používam zostavenú verziu. Dôvod je, že zostavená verzia je vytvorená pomocou rollup.js, ktorý vytvorí jeden súbor a už nič skutočne neinportuje.

Ale ako by som mohol vôbec získať názov modulu v tomto kontexte? Môžem nejako zachovať fungovanie import.meta alebo je nejaký iný spôsob, ako to dosiahnuť (okrem zdvojovania názvu súboru v url vlastnosti)?

Odpoveď č. 1

Použite getCurrentInstance, toto má väčšinu vecí, ktoré mal this v Options API

import {
  getCurrentInstance
} from 'vue'

export default {
  setup() {
    const instance = getCurrentInstance();
  }
}

A trochu preskúmaj tento objekt, aby si našiel názov svojej komponenty!