Как разрешить относительный путь к абсолютному URL-адресу в модуле ES6 (в браузере)?
Например :
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/
не может быть доменом веб-сайта. Это может быть репо, где хранятся только источники.
URL()
. Вопрос, кстати, кажется идентичным твоему. Возможно, вы реагируете на принятый ответ, в котором вас просят передать базовый путь (который не был частью вопроса), но есть и другие ответы, которые не требуют прохождения базового пути. По-моему, это чистый дурак. - person jfriend00   schedule 08.02.2018document.currentScript.src
, хотя я не могу подтвердить это, так как у меня нет простого способа проверить. Но это точно не дубликат. - person Patrick Roberts   schedule 08.02.2018ResolveUrl()
и проверку его свойстваstack
на предмет ссылки на базовый URL-адрес вызывающего модуля. Надеюсь, это поможет. - person Patrick Roberts   schedule 08.02.2018Error.captureStackTrace()
. - person Patrick Roberts   schedule 08.02.2018document.currentScript.src
не помогает, потому что при выполнении из файлов модуля jsdocument.currentScript
равноundefined
(известно из теста). Кроме того, мне очень нравится ваш подход к использованию стека вызовов. Что касается библиотекиerror-polyfill
, я не нашел способа запустить ее в браузере. Он говорит, что это возможно в read-me, но мне не удалось, так как он использует функциюrequire
.. - person Yairopro   schedule 08.02.2018