Импорт метаданных
Понять, где выполняется ваш код, можно с помощью `import.meta`.
Объект import.meta
С помощью ES-модулей вы можете получить некоторые метаданные от кода, который импортирует или компилирует ваш ES-модуль.
Это делается через import.meta
, который является объектом, предоставляющим вашему коду эту информацию.
В документации по Nuxt вы можете увидеть сниппеты, которые используют эту информацию, чтобы выяснить, выполняется ли код в данный момент на клиенте или на сервере.
Runtime (App) свойства
Эти значения внедряются статически и могут быть использованы для операции tree-shaking вашего кода во время выполнения.
Свойство | Тип | Описание |
---|---|---|
import.meta.client | boolean | true при вычислении на клиенте. |
import.meta.browser | boolean | true при вычислении на клиенте. |
import.meta.server | boolean | true при вычислении на сервере. |
import.meta.nitro | boolean | true при вычислении на сервере. |
import.meta.dev | boolean | true при запуске в Nuxt dev server. |
import.meta.test | boolean | true при запуске в тестовом контексте. |
import.meta.prerender | boolean | true при рендеринге HTML на сервере на этапе пререндера вашей сборки. |
Свойства билдера
Эти значения доступны как в модулях, так и в вашем nuxt.config
.
Свойство | Тип | Описание |
---|---|---|
import.meta.env | object | Равно process.env |
import.meta.url | string | Разрешимый путь для текущего файла. |
Примеры
Использование import.meta.url
для разрешения файлов внутри модулей
modules/my-module/index.ts
import { createResolver } from 'nuxt/kit'
// Относительно текущего файла
const resolver = createResolver(import.meta.url)
export default defineNuxtModule({
meta: { name: 'myModule' },
setup() {
addComponent({
name: 'MyModuleComponent',
// Разрешается в '/modules/my-module/components/MyModuleComponent.vue'
filePath: resolver.resolve('./components/MyModuleComponent.vue')
})
}
})