2017-03-07 5 views
1

이전 JavaScript 라이브러리를 ES6 호환 모듈로 변환하려고합니다. 라이브러리는 tracking.js (https://github.com/eduardolundgren/tracking.js/blob/master/build/tracking.js)이지만 내 결과는로 끝납니다 : Cannot read property 'xxx' of undefined이전 JavaScript 코드를 ES6 모듈로 변환

그런 모듈을 사용하는 쉬운 방법이 있습니까? 나는 더 많은 코드에 대한 요청이 있기 때문에 https://trackingjs.com/docs.html#step-2

업데이트

처럼 단지 기본 예제를 만들려고 해요. (Vue.js 구성 요소의 일부) 나 비 작업 예제 중 하나를 보여 드리죠 :

import tracking from 'tracking'; 

export default { 
    created() { 
    const colors = new tracking.ColorTracker(['magenta', 'cyan', 'yellow']); 
    } 
}; 

그리고 오류 것은 TypeError: _tracking2.default.ColorTracker is not a constructor

+0

하지만 몇 가지 코드를 넣으면 더 많은 설명이 있습니다. – pmirnd

+0

@pmirnd 여기 있습니다. 여전히 완전히 잘못되었지만 어떻게 시작해야할지 모르겠다. ( –

+1

일반적으로 이것은 모듈 로더의 작업 일 것이다. 예를 들어 webpack 및 SystemJS는 전역 범위에 자신을 추가하는 옵션을 사용할 수있다 (추적 – user3432422

답변

0

당신은 exports-loader 사용해야합니다, 라이브러리의 어떠한 수정은은 필요하지 않습니다 (tracking.js는 window.tracking에 자체 할당)

import * as tracking from 'exports-loader?tracking!tracking'; 

로 수출하는 로더는 전역 범위의 모듈에 액세스하는 방법을 알 필요가있다 : 로더는 전역 범위의 변수, 예를 들면 찾습니다. 여기서 파라미터 tracking (쿼리 물음표 뒤에)이있는 수출 로더를 사용하여 tracking (설명 표시 뒤에) 모듈을로드하라는 의미입니다.

+1

구문이 변경되었습니다 ('exports-loader? tracking! tracking'에서 추적으로 가져 오기 *)하지만 작동 중임 –

+0

아, 그래, 깜빡 했네 고마워 업데이트 된 답변 – user3432422

+0

크롬은 곧 출시 될 예정인 모든 브라우저에서 네이티브 모듈 지원을 사용하는 사람들에게 문제가 남아있다. es6 모듈에? 가능성이 어떤 종류의 래퍼를 빌드? – backspaces