如何确定 deno 脚本的位置?
How to determine the location of the deno script?
假设我发出以下命令:
deno run --allow-read /scripts/where-am-i.ts
where-am-i.ts
里面需要什么才能输出:
/scripts
我试过:
console.log(Deno.cwd());
打印调用脚本的目录(本例中为/
)。
我也试过:
console.log(Deno.execPath());
打印 deno 二进制文件的位置(对我来说 ~/.cargo/bin/deno
)。
您可以使用 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/std@0.138.0/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
假设我发出以下命令:
deno run --allow-read /scripts/where-am-i.ts
where-am-i.ts
里面需要什么才能输出:
/scripts
我试过:
console.log(Deno.cwd());
打印调用脚本的目录(本例中为/
)。
我也试过:
console.log(Deno.execPath());
打印 deno 二进制文件的位置(对我来说 ~/.cargo/bin/deno
)。
您可以使用 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/std@0.138.0/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