Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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).

like image 224
kaan_a Avatar asked Sep 13 '25 09:09

kaan_a


1 Answers

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

like image 150
jsejcksn Avatar answered Sep 14 '25 23:09

jsejcksn