匯入元資料
使用 `import.meta` 瞭解你的程式碼執行在哪裡。
import.meta
物件
透過 ES 模組,你可以從匯入或編譯 ES 模組的程式碼中獲取一些元資料。這是透過 import.meta
完成的,它是一個為你的程式碼提供這些資訊的物件。在 Nuxt 文件中,你可能會看到已經使用它的程式碼片段,以判斷程式碼當前是在客戶端還是伺服器端執行。
執行時(應用)屬性
這些值是靜態注入的,可用於對你的執行時程式碼進行搖樹最佳化(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 | 在執行 Nuxt 開發伺服器時為 true。 |
import.meta.test | boolean | 在測試上下文中執行時為 true。 |
import.meta.prerender | boolean | 在構建的預渲染階段,在伺服器上渲染 HTML 時為 true。 |
構建器屬性
這些值在模組和 nuxt.config
中都可用。
屬性 | 型別 | 描述 |
---|---|---|
import.meta.env | 物件 | 等同於 process.env |
import.meta.url | string | 當前檔案可解析的路徑。 |
示例
import.meta.url
在模組中解析檔案 使用
modules/my-module/index.ts
import { createResolver } from 'nuxt/kit'
// Resolve relative from the current file
const resolver = createResolver(import.meta.url)
export default defineNuxtModule({
meta: { name: 'myModule' },
setup () {
addComponent({
name: 'MyModuleComponent',
// Resolves to '/modules/my-module/components/MyModuleComponent.vue'
filePath: resolver.resolve('./components/MyModuleComponent.vue'),
})
},
})