【问题标题】:Equivalent of AMD's require.toUrl for ES6 modules等效于 ES6 模块的 AMD 的 require.toUrl
【发布时间】:2019-03-26 16:22:33
【问题描述】:

我目前正在将 JavaScript 库从 AMD 模块转换为 ES6 模块。

其中一些模块使用require.toUrl 将路径从相对于模块的路径转换为相对于基础的路径。如何在我的 ES6 模块中实现相同的效果?

请注意,我正在寻找的解决方案不仅适用于 webpack,而且适用于任何支持 ES6 模块的加载器或捆绑器,以及原生支持 ES6 模块的浏览器!

【问题讨论】:

  • 听起来您正试图从您的项目中删除requirejs...如果是这样,require.toURLrequirejs 功能
  • @GetOffMyLawn : require.toUrl 受 RequireJs 和 Dojo 1.7+ 支持。不确定 SystemJs 等其他加载器。无论哪种方式,删除 RequireJs(或 Dojo 加载器)作为依赖项确实是这里范围的一部分。提高与 Webpack 和其他现代打包程序的兼容性也是如此。
  • 我认为您需要编写自己的 twoUrl 函数或使用依赖项,因为它不在本机 es6 中
  • @GetOffMyLawn :我害怕那个。太烂了!

标签: javascript webpack ecmascript-6 requirejs amd


【解决方案1】:

您目前不能,但有 import.meta proposal 允许使用 import.meta.resolveURL()import.meta.resolve() 方法。

【讨论】:

  • 感谢您的提示。不幸的是,看起来还没有单个加载器或捆绑器支持它。提出一个模块标准并将如此重要的特性留给以后的状态是多么愚蠢。它使重构遗留代码比它应该的要困难得多......
猜你喜欢
  • 2016-04-22
  • 2021-10-28
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
  • 2023-03-30
  • 2023-03-11
相关资源
最近更新 更多