'How to determine the location of the deno script? [duplicate]
Let's say I issue the following command:
deno run --allow-read /scripts/where-am-i.ts
What would need to be inside where-am-i.ts for it to output:
/scripts
I've tried:
console.log(Deno.cwd());
which prints the directory the script was called from (/ in this example).
I have also tried:
console.log(Deno.execPath());
which prints the location of the deno binary (~/.cargo/bin/deno for me).
Solution 1:[1]
You can use some utilities from the std/path module to determine the directory of a module, based on its import meta:
so-72156289.ts:
import * as path from "https://deno.land/[email protected]/path/mod.ts";
function getModuleDir(importMeta: ImportMeta): string {
return path.resolve(path.dirname(path.fromFileUrl(importMeta.url)));
}
const dir = getModuleDir(import.meta);
console.log(dir);
$ deno run /Users/deno/examples/so-72156289.ts
/Users/deno/examples
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | jsejcksn |
