Javascript 类型为“的当前脚本路径”;模块";

Javascript 类型为“的当前脚本路径”;模块";,javascript,es6-modules,Javascript,Es6 Modules,在使用时,我正在尝试访问要相对于脚本文件引用的文件。通常,如果没有type=“module”,人们似乎会查找脚本标记并使用其src属性来获取路径,但在使用导入之后,这显然是不可能的 该场景大致如下所示: 文件结构: js/ script.js other/ imported.js index.html index.html: <html><head><script type="module" src="js/script.js"&g

在使用
时,我正在尝试访问要相对于脚本文件引用的文件。通常,如果没有type=“module”,人们似乎会查找脚本标记并使用其src属性来获取路径,但在使用导入之后,这显然是不可能的

该场景大致如下所示:

文件结构:

js/
    script.js
    other/
        imported.js
index.html
index.html:

<html><head><script type="module" src="js/script.js"></script></head></html>
imported.js

// ??? should with some code magic become "js/other/imported.js" or similar
console.log("The path to this script is: " + "???");
我在某个地方看到一些帖子,其中讨论了使用
type=“module”
时,之所以
document.currentScript
null
是因为他们想找到更好的替代方案。我想这个替代方案还没有


因此,回顾一下,在上面的文件结构中,如何在该脚本中动态找到js/other/imported.js的路径?

为了回答我自己的问题,大约两年后,现在有一个名为
import.meta
的东西,用于提供有关当前模块的任意信息。在这种情况下,
import.meta.url
将是我要寻找的东西


您可以在这个MDN页面上阅读更多内容:

现在有支持模块导入的浏览器吗?你可能需要说明你使用哪个浏览器才能得到一个有效的答案。我本来想让答案至少符合标准,但现在,我正在使用chrome beta(60)进行测试,可能会使用Firefox和safari验证一切正常。
// ??? should with some code magic become "js/other/imported.js" or similar
console.log("The path to this script is: " + "???");