-
-
Notifications
You must be signed in to change notification settings - Fork 4.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: create a page explaining
import.meta
(#24186)
- Loading branch information
1 parent
3c9d874
commit 78570b4
Showing
1 changed file
with
58 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
--- | ||
title: 'Import meta' | ||
description: Understand where your code is running using `import.meta`. | ||
--- | ||
|
||
## The `import.meta` object | ||
|
||
With ES modules you can obtain some metadata from the code that imports or compiles your ES-module. | ||
This is done through `import.meta`, which is an object that provides your code with this information. | ||
Throughout the Nuxt documentation you may see snippets that use this already to figure out whether the | ||
code is currently running on the client or server side. | ||
|
||
:read-more{to="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import.meta"} | ||
|
||
## Runtime (App) Properties | ||
|
||
These values are statically injected and can be used for tree-shaking your runtime code. | ||
|
||
Property | Type | Description | ||
--- | --- | --- | ||
`import.meta.client` | boolean | True when evaluated on the client side. | ||
`import.meta.browser` | boolean | True when evaluated on the client side. | ||
`import.meta.server` | boolean | True when evaluated on the server side. | ||
`import.meta.nitro` | boolean | True when evaluated on the server side. | ||
`import.meta.dev` | boolean | True when running the Nuxt dev server. | ||
`import.meta.test` | boolean | True when running in a test context. | ||
`import.meta.prerender` | boolean | True when rendering HTML on the server in the prerender stage of your build. | ||
|
||
## Builder Properties | ||
|
||
These values are available both in modules and in your `nuxt.config`. | ||
|
||
Property | Type | Description | ||
--- | --- | --- | ||
`import.meta.env` | object | Equals `process.env` | ||
`import.meta.url` | string | Resolvable path for the current file. | ||
|
||
## Examples | ||
|
||
### Using `import.meta.url` to resolve files within modules | ||
|
||
```ts [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') | ||
}) | ||
} | ||
}) | ||
``` |