我正在使用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/