javascript - 在 SystemJS 加载器环境中将相对路径映射到绝对路径的方法

标签 javascript node.js systemjs commonjs

我正在使用 SystemJS 加载器(带有 commonJS 模块,但这应该不重要),主要是为了直接访问 node_modules 下的组件。

现在在运行时,是否可以从相对路径中查找当前环境中的绝对路径?

即如果我执行 require('./myComponent') 它将获取 http://localhost:3000/app/myComponent.js 但如果此组件是通过 npm install(因此位于 node_modules 下)SystemJS 将正确加载 http://localhost:3000/node_modules/dist/myComponent.js。有没有办法从相对路径中查找这个绝对路径?

即类似于 var absPath = SystemJS.lookup('./myComponent')?

最佳答案

它被称为 normalize,它返回一个解析为绝对 URL 的 promise, 由当前 SystemJS 配置定义:

SystemJS.normalize('./myComponent').then(function(url) {

});

返回 promise 意味着不能保证它不会执行任何网络加载 - 例如,如果涉及插件或自定义加载器,它可能需要先加载插件。

此外,它还采用可选的第二个参数 - 父模块的名称,因为可以在配置中定义特定于包的映射。

关于javascript - 在 SystemJS 加载器环境中将相对路径映射到绝对路径的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38607223/

相关文章:

javascript - Ldapjs 等待搜索完成

javascript - MeanJS - 将 Angular 集成到 index.html 文件中

javascript - 无法加载转译器进行转译

angular - 如何将文件夹添加到 SystemJS Config 映射?

javascript - 如何使用 angularjs 替换现有父 div 上的子 div?

javascript - jQuery - 检查元素是否在一定秒数后隐藏

javascript - 什么是 NodeJS/ExpressJs 中的 HTTP 参数污染攻击

javascript - 如何让 Safari 显示 es6 (systemJS) 异步模块中的错误?

javascript - 如何使用 javascript/jquery 突出显示所写的特定单词?

javascript - $routeProvider.when(..) 未捕获所有 URL