我正在使用SystemJS加载程序(与commonJS模块一起使用,但这并不重要),主要是为了直接访问node_modules下的组件。

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

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

IE。像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/

10-10 00:30