Bun

import.meta

import.meta 对象是模块访问自身信息的一种方式。它是 JavaScript 语言的一部分,但其内容未标准化。每个“主机”(浏览器、运行时等)都可以自由地在 import.meta 对象上实现其希望的任何属性。

Bun 实现以下属性。

/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.url;   // => "file:///path/to/project/file.ts"

import.meta.main;  // `true` if this file is directly executed by `bun run`
                   // `false` otherwise

import.meta.resolve("zod"); // => "file:///path/to/project/node_modules/zod/index.js"
import.meta.dir包含当前文件的目录的绝对路径,例如 /path/to/project。等同于 CommonJS 模块(和 Node.js)中的 __dirname
import.meta.dirnameimport.meta.dir 的别名,以兼容 Node.js
import.meta.envprocess.env 的别名。
import.meta.file当前文件的名称,例如 index.tsx
import.meta.path当前文件的绝对路径,例如 /path/to/project/index.ts。等同于 CommonJS 模块(和 Node.js)中的 __filename
import.meta.filenameimport.meta.path 的别名,以兼容 Node.js
import.meta.main指示当前文件是否是当前 bun 进程的入口点。该文件是由 bun run 直接执行还是被导入的?

import.meta.resolve

将模块规范符(例如 "zod""./file.tsx")解析为 URL。等同于 浏览器中的 import.meta.resolve

import.meta.resolve("zod");
// => "file:///path/to/project/node_modules/zod/index.ts"
import.meta.url当前文件的string url,例如 file:///path/to/project/index.ts。等同于 浏览器中的import.meta.url