2017-09-26 12 views
1

우리는 가져 오기 문장에 올바른 형식의 URI 또는 ​​경로 대신 모듈에 대한 심볼릭 참조를 사용하기 위해 ES6 로더를 만들려고합니다. 인스턴스의 경우,이 같은 가져 오기 :심볼릭 참조를 해결하는 ES6 모듈 로더

import { foo } from 'com.bussines.platform.utils'; 

실제 URI에 상징적 참조 com.bussines.platform.utils를 해결해야하며, foo를 얻기 위해 일반로드 프로세스를 진행합니다.

이 목표를 달성하기 위해 @guybedford가 개발 한 es-module-loaderpolyfill을 사용하고 있습니다. 우리는 브라우저의 컨텍스트에, 우리는 BrowserESModuleLoader에 위임 로더를 만들 수 있습니다

class CustomBrowserLoader extends RegisterLoader { 

    constructor(Loader) { 
    super(); 
    this.loader = new BrowserESModuleLoader(); 
    } 

    [RegisterLoader.resolve] (key) { 
    let uri = Resolve (key) 
    return this.loader[RegisterLoader.resolve] (uri); // (1) 
    } 

    [RegisterLoader.instantiate] (uri) { 
    return this.loader[RegisterLoader.instantiate] (uri); // (2) 
    } 
} 

문제는 놀라 울 정도로, (1)과 (2) 필요한 방법 resolve을 찾을 수없는 라인에서 호출이다 및 instantiate. 우리는 상속을 기반으로 다른 접근법을 시도했지만 비슷한 결과를 얻었습니다.

¿ 누구든지 문제 해결 방법에 대한 통찰력을 줄 수 있습니까? 미리 감사드립니다.

답변

0

로더는 별도의 빌드이므로 여기서는 BrowserESModuleLoader.resolve 및 BrowserESModuleLoader.instantiate가 필요하다고 생각합니다.

브라우저 ES 모듈 로더 코드 자체를 직접 포크로 처리하고 대신 이러한 유형의 지정자를 직접 처리하는 것이 좋습니다.