Node.js'__迪名称及__Deno中的等效文件名

Node.js'__迪名称及__Deno中的等效文件名,node.js,deno,Node.js,Deno,如何获取当前模块的目录和文件名?。在Node.js中,我会使用:\uuuu dirname&\uu filename,对于Deno中的,没有类似或的变量,但由于 您可以使用URL构造函数: const\uu filename=新URL(“”,import.meta.URL).pathname; //将包含尾部斜杠 const__dirname=新URL('.',import.meta.URL).pathname; 注意:在windows上它将包含/,下面显示的方法将在windows上工作 此

如何获取当前模块的目录和文件名?。在Node.js中,我会使用:
\uuuu dirname
&
\uu filename
,对于Deno中的,没有类似或的变量,但由于

您可以使用
URL
构造函数:

const\uu filename=新URL(“”,import.meta.URL).pathname;
//将包含尾部斜杠
const__dirname=新URL('.',import.meta.URL).pathname;
注意:在windows上它将包含
/
,下面显示的方法将在windows上工作


此外,您还可以使用

import*作为路径从“https://deno.land/std@0.57.0/path/mod.ts”;
const\uu filename=path.fromFileUrl(import.meta.url);
//无尾斜杠
const__dirname=path.dirname(path.fromFileUrl(import.meta.url));

另一种选择是使用第三方模块,例如:


https://deno.land/x/dirname
不存在,这是一个死链接。这在Windows上对我不起作用,我在这里找到了一个可行的解决方案:
import { __ } from 'https://deno.land/x/dirname/mod.ts';
const { __filename, __dirname } = __(import.meta);