从 ES6 模块(在浏览器中)将相对路径解析为绝对 url

Resolve relative path to absolute url from ES6 module (in browser)

如何在 ES6 模块(在浏览器中)中将相对路径解析为绝对 url?

例如:

base-url.com/
    |-resolve
    |   |-resolveUrl.js
    |-dir
        |-dir1
            |-module1.js
        |-dir2
            |-module2.js

module1.js

import resolveUrl from "../../../resolve/resolveUrl.js"
resolveUrl("../dir2/module2.js") // return 'base-url.com/dir/dir2/module2.js'

resolveUrl 实施是什么?

base-url.com/ 可能不是该网站的域。它可以是一个只存储源代码的仓库。

您现在可以使用 to-absolute-url.

它在后台使用 stacktrace.js 获取调用函数的绝对路径文件:

感谢 @PatrickRoberts for his idea to use stacktrace, and @jfriend00 提示使用 URL 对象。