mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 02:48:50 +00:00
73 lines
2.0 KiB
Markdown
73 lines
2.0 KiB
Markdown
The `import.meta` object is a way for a module to access information about itself. It's part of the JavaScript language, but its contents are not standardized. Each "host" (browser, runtime, etc) is free to implement any properties it wishes on the `import.meta` object.
|
|
|
|
Bun implements the following properties.
|
|
|
|
```ts#/path/to/project/file.ts
|
|
import.meta.dir; // => "/path/to/project"
|
|
import.meta.file; // => "file.ts"
|
|
import.meta.path; // => "/path/to/project/file.ts"
|
|
|
|
import.meta.main; // `true` if this file is directly executed by `bun run`
|
|
// `false` otherwise
|
|
|
|
import.meta.resolveSync("zod")
|
|
// resolve an import specifier relative to the directory
|
|
```
|
|
|
|
{% table %}
|
|
|
|
---
|
|
|
|
- `import.meta.dir`
|
|
- Absolute path to the directory containing the current file, e.g. `/path/to/project`. Equivalent to `__dirname` in CommonJS modules (and Node.js)
|
|
|
|
---
|
|
|
|
- `import.meta.dirname`
|
|
- An alias to `import.meta.dir`, for Node.js compatibility
|
|
|
|
---
|
|
|
|
- `import.meta.file`
|
|
- The name of the current file, e.g. `index.tsx`
|
|
|
|
---
|
|
|
|
- `import.meta.path`
|
|
- Absolute path to the current file, e.g. `/path/to/project/index.tx`. Equivalent to `__filename` in CommonJS modules (and Node.js)
|
|
|
|
---
|
|
|
|
- `import.meta.filename`
|
|
- An alias to `import.meta.path`, for Node.js compatibility
|
|
|
|
---
|
|
|
|
- `import.meta.url`
|
|
- A string url to the current file, e.g. `file:///path/to/project/index.tx`
|
|
|
|
---
|
|
|
|
- `import.meta.main`
|
|
- `boolean` Indicates whether the current file is the entrypoint to the current `bun` process. Is the file being directly executed by `bun run` or is it being imported?
|
|
|
|
---
|
|
|
|
- `import.meta.env`
|
|
- An alias to `process.env`.
|
|
|
|
---
|
|
|
|
- `import.meta.resolve{Sync}`
|
|
- Resolve a module specifier (e.g. `"zod"` or `"./file.tsx"`) to an absolute path. While file would be imported if the specifier were imported from this file?
|
|
|
|
```ts
|
|
import.meta.resolveSync("zod");
|
|
// => "/path/to/project/node_modules/zod/index.ts"
|
|
|
|
import.meta.resolveSync("./file.tsx");
|
|
// => "/path/to/project/file.tsx"
|
|
```
|
|
|
|
{% /table %}
|