Deno provides extra properties on import.meta
. These are included here
to ensure that these are still available when using the Deno namespace in
conjunction with other type libs, like dom
.
url: string
A string representation of the fully qualified module URL. When the
module is loaded locally, the value will be a file URL (e.g.
file:///path/module.ts
).
You can also parse the string as a URL to determine more information about how the current module was loaded. For example to determine if a module was local or not:
const url = new URL(import.meta.url); if (url.protocol === "file:") { console.log("this module was loaded locally"); }
filename: string
The absolute path of the current module.
This property is only provided for local modules (ie. using file://
URLs).
Example:
// Unix console.log(import.meta.filename); // /home/alice/my_module.ts // Windows console.log(import.meta.filename); // C:\alice\my_module.ts
dirname: string
The absolute path of the directory containing the current module.
This property is only provided for local modules (ie. using file://
URLs).
- Example:
// Unix console.log(import.meta.dirname); // /home/alice // Windows console.log(import.meta.dirname); // C:\alice
main: boolean
A flag that indicates if the current module is the main module that was called when starting the program under Deno.
if (import.meta.main) { // this was loaded as the main module, maybe do some bootstrapping }
resolve(specifier: string): string
A function that returns resolved specifier as if it would be imported
using import(specifier)
.
console.log(import.meta.resolve("./foo.js")); // file:///dev/foo.js