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