2017-03-07 12 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コンポーネントの一部)の1見せしましょう:

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

ここにあります。これは完全に間違っていますが、私はどのように起動するべきかわかりません:( –

+1

通常これはモジュールローダーの仕事です。例えばwebpackとSystemJSは、自分自身をグローバルスコープに追加するスクリプトを使用するオプションを持っています – user3432422

答えて

0

であるあなたはexports-loaderを使用する必要があり、ライブラリの修正は必要ありません、ローダは例えば、グローバルスコープに変数を探します:

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

輸出-ローダーは(tracking.jsがwindow.trackingに自己を割り当て)グローバルスコープにモジュールにアクセスする方法を知っている必要があります。ここでは、パラメータtracking(クエリ疑問符の後)を使用して、tracking(説明マークの後に)モジュールをロードするように指示しています。

+1

の構文が変更されました( 'exports-loader?tracking!tracking 'からのトラッキングとしてimport *されていますが、動作しています) –

+0

更新された答え – user3432422

+0

しかし、クロムを除くすべての最新のブラウザーではネイティブモジュールサポートを使用している人たちには問題は残っていますが、すぐに着陸するでしょう。おそらく何らかの種類のラッパーを作るでしょうか? – backspaces

関連する問題